在用XGBoost训练我的模型后,我尝试测试模型,但预测结果是一些浮点数,当我想获取性能测量时会导致错误。这是代码:
这是错误信息:
ValueError: Target is multiclass but average='binary'. Please choose another average setting.
当我使用其他提升模型如AdaBoost或CatBoost时,从未发生过这种情况。我是否应该考虑一个阈值,将高于阈值的预测赋值为+1,低于阈值的赋值为-1?任何建议都将不胜感激。
回答:
假设您处于二分类设置中,正如您明确暗示的,问题在于您不应使用XGBRegressor
,它是用于回归问题而不是分类问题的;根据文档(强调部分):
class
xgboost.XGBRegressor
Implementation of the scikit-learn API for XGBoost regression
您应该使用XGBClassifier
替代。
更多详情,请参见我在Accuracy Score ValueError: Can’t Handle mix of binary and continuous target中的回答(注意,因为那里几乎所有其他回答,包括被接受和高度赞成的那个,基本上都是错误的);它涉及到与scikit-learn几乎相同的问题,但同样的论点也适用于您的案例。