Воспроизвести LightGBM пользовательскую функцию потерь для регрессии - PullRequest
1 голос
/ 19 февраля 2020

Я хочу воспроизвести пользовательскую функцию потерь для 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

Тем не менее, eval метрики отличаются для цели "регрессии" по умолчанию, по сравнению с пользовательской функцией потерь определены. Я хотел бы знать, какова функция по умолчанию, используемая LightGBM для цели «регрессии»?

1 Ответ

0 голосов
/ 01 мая 2020

как видите здесь , это функция потерь по умолчанию для задачи регрессии

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...