Мне нужно знать, какие функции потерь используются в функциях h2o gbm и xgboost для гауссовского, биномиального и полиномиального распределений. К сожалению, мои познания в Java очень ограничены, и я не могу расшифровать исходный код, и, кажется, нет никакого документа, разъясняющего, какой дистрибутив связан с какой функцией. Я думаю, что понял из здесь это logloss для бинома и MSE для гаусса, но я ничего не могу найти для многочлена. Кто-нибудь здесь, может быть, знает ответ?
Какие функции потерь связаны с распределениями в h2o xgboost и gbm?
Ответы (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
Спасибо за очень полезный ответ. Только один дополнительный вопрос: был ли я прав, предполагая, что MSE используется для гауссова, а логарифмический анализ — для биномиального? Есть ли различия между XGBoost и GBM с точки зрения функций потерь?
- person AberLan; 11.04.2021