改变 xgboost 中的成本函数

数据挖掘 机器学习 Python xgboost
2021-10-07 14:49:26

我在 python 2.7 中使用最新版本的 xgboost 包,根据我的问题,我将更改 xgboost 成本函数以使用我自己定义的成本函数。几个问题:

我应该在 xgboost 包的哪个部分找到并更改成本函数?更改成本函数后,如何将更新后的代码添加到 xgboost 包中以使用新的训练函数而不是 xgboost 的预定义函数?

1个回答

这在stackoverflow中进行了讨论,只是回顾一下:

定义您的自定义成本函数,例如:

 def new_cost(y_pred, y_true):
    # perform calculation for new cost
    return 'new_cost', score

然后将其传递给 feval 参数(参见官方文档)进行训练,例如:

model = xgboost.train(params, dtrain, num_rounds, watchlist, feval=new_cost)

如果您更努力地搜索更具体的用例,那么会有很多示例。