python - 参数 num_class 的 xgboost sklearn 包装器值 0 应大于等于 1

标签 python scikit-learn xgboost

我正在尝试使用 sklearn 提供的 XGBClassifier 包装器解决多类问题。我的类是 [0, 1, 2],我使用的目标是 multi:softmax。当我尝试拟合分类器时,我得到了

xgboost.core.XGBoostError: value 0for Parameter num_class should be greater equal to 1

如果我尝试设置 num_class 参数,我会得到错误

got an unexpected keyword argument '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, ...)

如果您使用 fit 方法,XGBClassifier 会自动设置此值,但不会在 cv 方法中设置

关于python - 参数 num_class 的 xgboost sklearn 包装器值 0 应大于等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40116215/

相关文章:

python - 将 OpenCV 与 Tkinter 结合使用

python - 将 Plone 2 root 重定向到新域

python - t-SNE 在不同的机器上产生不同的结果

machine-learning - 每个样本都有独特的真/假损失

python - 用 numpy 连接数组的元素?

python - 使用 imblearn 对多类数据进行过采样

python - 使用 cross_val_score 计算的指标与从 cross_val_predict 计算的相同指标有何不同?

python - 如何在 Xgboost 中修复此警​​告?

r - XGboost 模型始终获得 100% 的准确率?

python - **kwargs 中具有多种类型的类型注释