我想添加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意味着算法随着评估指标得分的提高而变得更好。

08-24 14:50