我正在使用XGBClassifier执行分类任务—我希望尽可能重用sklearn的功能。我特别感兴趣的是使用f_beta函数定义我的自定义计分器来定义f0.5分。
当我运行以下代码时:
from sklearn.metrics import f1_score
clf = xgb.XGBClassifier(max_depth=5,
learning_rate=0.25,
objective='binary:logistic',
use_label_encoder=False,
eval_metric=make_scorer(fbeta_score(beta=0.5)),
)
我得到以下错误:
TypeError: fbeta_score() missing 2 required positional arguments: 'y_true' and 'y_pred'
同样,按照XGBoost文档的这一部分,我简化了案例,只使用预定义的、现成的f1_score
度量:eval_metric=f1_score
,但是XGBClassifier切换回日志丢失的度量。
我如何以适当的方式实现我的自定义度量?
如果您检查文档,则不能使用eval_metric
创建您自己的度量,而是文档中列出的度量
但是如果你想优化,我认为你可以在gridsearchCV中精确地使用评分来定制度量。