如何在 python 中为 xgboost 编写自定义评估指标



我想添加kappa评估指标以在Python中的xgboost中使用。我无法理解如何将 Python 函数与 xgboost 连接起来。

根据 xgboost 文档,"用户可以添加多个评估指标,对于 python 用户,请记住将指标作为参数对列表而不是 map 传递,以便后一个'eval_metric'不会覆盖前一个"

这已经在xgboost的github页面中针对R提出,但不适用于Python。

例如,如果 kappa 函数是:

def kappa(preds, y):
    # perform kappa calculation
    return score

我如何使用 xgboost 实现它?在 eval_metric 参数中将'kappa'指定为字符串结果XGBoostError: unknown evaluation metric type: kappa .

同样,指定 kappa 方法对象会导致XGBoostError: unknown evaluation metric type: <function kappa at 0x7fbef4b03488>

如何在 python 中的 xgboost 中使用自定义评估指标?

将方法更改为:

def kappa(preds, y):
    # perform kappa calculation
    return 'kappa', score

并将其与feval参数一起使用:

bst = xgb.train(params, dtrain, num_rounds, watchlist, feval=kappa, maximize=False)

编写自定义评估指标时,请记住设置maximize参数。将其设置为 true 意味着算法越好,评估指标得分越高。

相关内容

  • 没有找到相关文章

最新更新