我在 python 2.7 中使用最新版本的 xgboost 包,根据我的问题,我将更改 xgboost 成本函数以使用我自己定义的成本函数。几个问题:
我应该在 xgboost 包的哪个部分找到并更改成本函数?更改成本函数后,如何将更新后的代码添加到 xgboost 包中以使用新的训练函数而不是 xgboost 的预定义函数?
我在 python 2.7 中使用最新版本的 xgboost 包,根据我的问题,我将更改 xgboost 成本函数以使用我自己定义的成本函数。几个问题:
我应该在 xgboost 包的哪个部分找到并更改成本函数?更改成本函数后,如何将更新后的代码添加到 xgboost 包中以使用新的训练函数而不是 xgboost 的预定义函数?
这在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)
如果您更努力地搜索更具体的用例,那么会有很多示例。