我想为LightGBM复制自定义丢失功能。这是我尝试过的:
lgb.train(params=params, train_set=dtrain, num_boost_round=num_round, fobj=default_mse_obj)
将default_mse_obj定义为:
residual = y_true - y_pred.get_label()
grad = -2.0*residual
hess = 2.0+(residual*0)
return grad, hess
但是,与定义的自定义损失函数相比,默认“回归”目标的评估指标有所不同。我想知道,LightGBM用于“回归”目标的默认函数是什么?
您可以看到here,这是回归任务的默认损失函数
def default_mse_obj(y_pred, dtrain):
y_true = dtrain.get_label()
grad = (y_pred - y_true)
hess = np.ones(len(grad))
return grad, hess