マルチクラスの問題に対して、XGBClassifier
によって提供されるsklearn
ラッパーを使用しようとしています。私のクラスは[0、1、2]で、使用する目的はmulti:softmax
。私が得た分類子を適合させようとしているとき
xgboost.core.XGBoostError:パラメータnum_classの値0は1より大きい必要があります
Num_classパラメータを設定しようとすると、エラーが発生します
予期しないキーワード引数 'num_class'を受け取りました
Sklearnはこのパラメーターを自動的に設定するため、その引数を渡すことは想定されていません。しかし、なぜ最初のエラーが発生するのですか?
手動で追加パラメータnum_class
をxgb_paramに
# Model is an XGBClassifier
xgb_param = model.get_xgb_params()
xgb_param['num_class'] = 3
cvresult = xgb.cv(xgb_param, ...)
XGBClassifierは、fit
メソッドを使用する場合にこの値を自動的に設定しますが、cv
メソッドでは使用しません
私の場合、通常のfit
呼び出し中に同じエラーがスローされました。問題の根本は、目的が手動でmulti:softmax
に設定されたことですが、クラスは2つしかありませんでした。 binary:logistic
に変更すると、問題は解決しました。