我想添加kappa评估指标,以在Python的xgboost中使用。我在理解如何使用xgboost连接Python函数时遇到麻烦。
根据xgboost文档,“用户可以添加多个评估指标,对于python用户,请记住将指标作为参数对列表而不是map传递进来,以便后面的'eval_metric'不会覆盖前一个”
对于,对于R而言,这已在xgboost's github page中提出,对于Python,则不是。
例如,如果kappa函数是:
def kappa(preds, y):
# perform kappa calculation
return score
如何使用xgboost实现它?
在
'kappa'
参数中将eval_metric
指定为字符串结果为
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意味着算法随着评估指标得分的提高而变得更好。