Специалисты по обработке данных, участвующие в соревнованиях Kaggle, часто придумывают выигрышные решения, используя ансамбли передовых алгоритмов машинного обучения. Одна конкретная модель, которая обычно является частью таких ансамблей, - это машины с градиентным усилением (GBM). Повышение градиента - это метод машинного обучения, используемый для решения задач регрессии и классификации, который использует «ансамбль» слабых моделей прогнозирования (обычно деревья решений) для создания мощного «комитета».

Этот метод восходит к основополагающей статье Джерома Х. Фридмана 1999 года Аппроксимация жадной функцией: машина для повышения градиента. Я рекомендую всем специалистам по обработке данных прочитать этот важный учебный ресурс, чтобы лучше понять генезис самого популярного на сегодняшний день алгоритма статистического обучения.

С тех пор был внесен ряд важных нововведений, расширивших оригинальные GBM: h2o, xgboost, lightgbm, catboost. Совсем недавно в новой статье arXiv.org, появившейся 9 октября 2019 года, появился еще один алгоритм: NGBoost: Natural Gradient Boosting для вероятностного прогнозирования от Stanford ML Group. Он построен на основе scikit-learn и спроектирован так, чтобы быть масштабируемым и модульным в отношении выбора правильного правила оценки, распределения и базовых учащихся. В этой статье я рассмотрю алгоритм NGBoost и его место в траектории ускорения.

[Статья по теме: XGBoost: улучшение по сравнению с машинами для повышения градиента]

Идея, лежащая в основе алгоритма, довольно проста: Обучите базового учащегося выводить результаты для каждого обучающего примера, такого как распределение вероятностей, которое минимизирует правильную оценку. Естественный градиентный спуск используется в качестве алгоритма оптимизации, а базовый учащийся - это набор слабых учеников, использующих метод повышения.

NGBoost - это быстрый, гибкий и простой в использовании алгоритм вероятностной регрессии. С момента его выпуска возникла некоторая путаница в отношении вероятностной регрессии. NGBoost не настроен для работы с проблемами классификации, поэтому это можно считать значительным отклонением от других алгоритмов повышения. Авторы указали, что скоро можно будет использовать NGBoost для классификации; Причина, по которой они изначально не сосредоточились на классификации, заключается в том, что классификация, как правило, уже является вероятностной.

Естественное усиление градиента

Алгоритм повышения NGBoost использует Natural Gradient Boosting, модульный алгоритм повышения для вероятностных прогнозов. Этот алгоритм состоит из трех абстрактных модульных компонентов: базового учащегося , параметрического распределения вероятностей и правила оценки . Все три компонента рассматриваются как гиперпараметры, выбранные заранее перед обучением. Давайте рассмотрим эти термины:

Источник: «NGBoost: Natural Gradient Boosting для вероятностного прогнозирования», Дуан и др. (2019)

  • Базовые учащиеся. Чаще всего выбирают деревья решений, которые, как правило, хорошо работают со структурированными входными данными.
  • Параметрическое распределение вероятностей. Распределение должно быть совместимо с типом вывода, например Нормальное распределение для выходов с действительным знаком, Бернулли для двоичных выходов.
  • Правило оценки - оценка максимального правдоподобия (MLE) - очевидный выбор. Также подходят более надежные правила, такие как Continuous Ranked Probability Score (CRPS).

Ключевое нововведение NGBoost заключается в использовании естественного градиента для выполнения повышения градиента, превращая его в проблему определения параметров распределения вероятностей.

Прогнозная оценка неопределенности

NGBoost обеспечивает прогнозирующую оценку неопределенности с повышением градиента с помощью вероятностных прогнозов, включая выходы с действительными значениями. Используя естественные градиенты, NGBoost может преодолевать технические проблемы, которые затрудняют универсальное вероятностное прогнозирование с усилением градиента.

Оценка неопределенности прогнозов модели машинного обучения важна для реальных производственных развертываний. Для моделей важно делать точные прогнозы, но нам также нужна правильная оценка неопределенности вместе с каждым прогнозом.

Вероятностное предсказание, то есть подход, при котором модель выводит полное распределение вероятностей по всему пространству результатов, является естественным способом количественной оценки этих неопределенностей. Сравните точечные прогнозы с вероятностными прогнозами в следующих примерах.

Источник: Stanford ML Group

NGBoost упрощает вероятностную регрессию с помощью гибких древовидных моделей. Кроме того, в течение некоторого времени можно было проводить вероятностную классификацию, поскольку большинство классификаторов на самом деле являются вероятностными классификаторами в том смысле, что они возвращают вероятности по каждому классу. Например, логистическая регрессия возвращает вероятности классов в качестве выходных данных. В этом свете NGBoost не добавляет много нового.

Но не все классификаторы выводят вероятности, а скорее наиболее вероятную метку класса. То же самое и с большинством алгоритмов регрессии, где в качестве ожидаемого результата вы получаете одно действительное число. Рассмотрим линейную регрессию, когда функция прогнозирования возвращает одно значение, а не распределение по всем возможным значениям. В этом случае NGBoost добавляет способ выполнения вероятностной регрессии.

[Статья по теме: Лучшее исследование машинного обучения 2019 года]

Вот пример использования NGBoost с набором данных конкурса Kaggle NFL Big Data Bowl. После начальных тестов с другими популярными алгоритмами повышения, такими как LightGBM, и алгоритмами упаковки, такими как Random Forest, производительность NGBoost, как видно, немного лучше, хотя это только начало, поскольку есть много возможностей для будущей работы.

Репозиторий GitHub для NGBoost можно найти ЗДЕСЬ.

Оригинальный пост здесь.

Прочтите больше статей по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от новичка до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг.