如何解决XGBoost二分类时未知目标函数及traceback报错问题
报错原因
你在定义objective参数时多输入了一个多余空格,填写的binary: logistic不符合XGBoost的合法参数规范。从报错给出的目标函数候选列表可以看到,二分类对应的合法目标函数名称是不带空格的binary:logistic,多余空格导致XGBoost无法识别对应目标函数,触发报错。
修复方案
将objective参数的值修改为binary:logistic即可,修正后代码如下:
clf_xgb = xgb.XGBClassifier(objective = 'binary:logistic', missing = None, seed = 42) clf_xgb.fit(X_train, y_train, eval_set = [(X_test, y_test)], eval_metric = 'aucpr', early_stopping_rounds=10, verbose = True )
额外说明:XGBClassifier的objective参数默认值就是binary:logistic,如果你是做标准二分类任务,也可以直接省略该参数的显式设置,代码也可以正常运行。
内容的提问来源于stack exchange,提问作者Mohd. Hamim
相关产品推荐
相关产品推荐

