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 用于“回归”目标的默认函数是什么?
正如您在这里所看到的,这是回归任务的默认损失函数
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)