重现LightGBM自定义损失函数以进行回归

时间:2020-02-18 22:23:46

标签: xgboost lightgbm

我想为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用于“回归”目标的默认函数是什么?

1 个答案:

答案 0 :(得分:0)

您会看到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