Какие функции потерь связаны с распределениями в h2o xgboost и gbm?

Мне нужно знать, какие функции потерь используются в функциях h2o gbm и xgboost для гауссовского, биномиального и полиномиального распределений. К сожалению, мои познания в Java очень ограничены, и я не могу расшифровать исходный код, и, кажется, нет никакого документа, разъясняющего, какой дистрибутив связан с какой функцией. Я думаю, что понял из здесь это logloss для бинома и MSE для гаусса, но я ничего не могу найти для многочлена. Кто-нибудь здесь, может быть, знает ответ?


person AberLan    schedule 01.04.2021    source источник


Ответы (1)


Спасибо Вам за Ваш вопрос. Мы обязательно должны предоставить эту информацию в документация. Мы работаем над улучшением документа. Чтобы ответить на ваш вопрос:

Функция потерь для полиномиальной классификации также является softmax для H2O GBM и XGBoost. H2O GBM реализован на основе этой статьи: Аппроксимация жадной функции: градиент бустерная машина, Джером Х. Фридман, 2001 г. В главе 4.6. автор красиво объясняет, как он рассчитывается и почему.

введите здесь описание изображения

На основе функции потерь определяется метод negHalfGradient, и каждый дистрибутив реализует его индивидуально. Для полиномиального распределения (здесь) реализация:

@Override
public double negHalfGradient(double y, double f, int l) {
    return ((int) y == l ? 1f : 0f) - f;
}

Где:

  • y - это фактический ответ
  • f — прогнозируемый ответ в пространстве ссылок
  • l - это метка класса (лексикографически преобразованная из исходных меток в 0-номер класса - 1)

Дайте мне знать, если у вас есть другие вопросы.

person Maurever    schedule 06.04.2021
comment
Спасибо за очень полезный ответ. Только один дополнительный вопрос: был ли я прав, предполагая, что MSE используется для гауссова, а логарифмический анализ — для биномиального? Есть ли различия между XGBoost и GBM с точки зрения функций потерь? - person AberLan; 11.04.2021