我想添加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 意味着算法越好,评估指标得分越高。