我想在Python中添加用于xgboost的kappa评估指标。我无法理解如何将Python函数与xgboost连接。
根据xgboost文档,"用户可以添加多个评估指标,对于python用户,请记住将指标作为参数对列表而不是map传递,以便后者'eval_metric'不会覆盖前一个"
这已经在xgboost's github page中针对R而不是针对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中使用自定义评估指标?
答案 0 :(得分:13)
将您的方法更改为:
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意味着评估指标得分越高,算法越好。