I am trying to use the XGBClassifier
wrapper provided by sklearn
for a multiclass problem. My classes are [0, 1, 2], the objective that I use is multi:softmax
. When I am trying to fit the classifier I get
xgboost.core.XGBoostError: value 0for Parameter num_class should be greater equal to 1
If I try to set the num_class parameter the I get the error
got an unexpected keyword argument 'num_class'
Sklearn is setting this parameter automatically so I am not supposed to pass that argument. But why do I get the first error?
You need to manually add the parameter num_class
to the xgb_param
# Model is an XGBClassifier
xgb_param = model.get_xgb_params()
xgb_param['num_class'] = 3
cvresult = xgb.cv(xgb_param, ...)
The XGBClassifier does set this value automatically if you use its fit
method, but does not in the cv
method