首页 > 解决方案 > 如何在自定义目标函数中重现 LGBM(lightGBM)泊松损失

问题描述

在我的回归问题中,当使用 LGBM 的内置泊松损失时,我得到了非常好的模型性能。现在我试图在我的自定义目标函数中重现 LGBM 的泊松损失。

这是LGBM的泊松函数源代码:https max_delta_step=0.7 ://github.com/microsoft/LightGBM/blob/7076cb8a3ac3a7b32dcf37be5593dddf27bf7f16/src/objective/regression_objective.hpp#L446在这里配置:https ://github.com/microsoft/LightGBM /blob/7076cb8a3ac3a7b32dcf37be5593dddf27bf7f16/include/LightGBM/config.h#L792

因此,在创建自定义目标函数时,我对 poission loss 的理解可以写成:

max_delta_step = 0.7
grad_poisson = np.exp(y_pred) - y_true
hess_poisson = np.exp(y_pred + max_delta_step)

但是在不更改 LGBM 中的任何其他设置的情况下使用此代码,我的模型性能要差得多....

有谁知道如何在定制的反对函数中重现 LGBM 的泊松损失?

标签: pythoncustomizationpoissonlightgbmobjective-function

解决方案


推荐阅读