F1/F0.5在XGBClassifier中作为eval_metric评分



我正在使用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中精确地使用评分来定制度量。

最新更新