为回归重现 LightGBM 自定义损失函数

Fra*_*ser 5 python machine-learning python-3.x xgboost lightgbm

我想重现 LightGBM 的自定义损失函数。这是我尝试过的:

lgb.train(params=params, train_set=dtrain, num_boost_round=num_round, fobj=default_mse_obj)
Run Code Online (Sandbox Code Playgroud)

default_mse_obj 被定义为:

residual = y_true - y_pred.get_label()
grad = -2.0*residual
hess = 2.0+(residual*0)
return grad, hess
Run Code Online (Sandbox Code Playgroud)

但是,与定义的自定义损失函数相比,默认“回归”目标的 eval 指标是不同的。我想知道,LightGBM 用于“回归”目标的默认函数是什么?

Mar*_*ani 6

正如您在这里所看到的,这是回归任务的默认损失函数

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
Run Code Online (Sandbox Code Playgroud)