- BrainTools - https://www.braintools.ru -
Если вы помните Вольтрона — вы понимаете Gradient Boosting. Команду странных механических львов, объединяющихся в огромного робота против зла, только вместо «зла» здесь неупорядоченные данные. Градиентный бустинг — это трюк в машинном обучении [1], где мы создаём сильную модель, объединяя множество посредственных. Как если бы вы собрали команду середнячков, которые по отдельности так себе, но вместе становятся Мстителями Предсказательной Силы — исправляют ошибки [2] друг друга, как слишком заядлые отличники в классе.
Это в кратце, а вот детали:
Gradient Boosting так называется потому что алгоритм строит (бустит) новые модели из более мелких на основе градиента функции потерь.
Бустинг (объединение) – это комбинация множества простых слабых моделей (обычно небольших деревьев решений), где каждая новая исправляет ошибки предыдущих. Каждая следующая модель пытается улучшить результат, фокусируясь на недочётах своих предшественников.
Градиент – в математике [3] градиент — это вектор, указывающий направление наибольшего роста функции. В Gradient Boosting речь идёт о градиенте функции потерь (т.е. функции, измеряющей, насколько ошибочны предсказания предыдущего шага).
Как это работает:
Сначала у нас есть начальная модель с некоторой ошибкой (потерей). Каждая новая модель предсказывает отрицательный градиент (направление наискорейшего спуска) этой ошибки, показывая, как изменить прогнозы, чтобы снизить ошибку. Двигаясь в этом направлении, алгоритм шаг за шагом приближается к оптимальному решению.
Исходные данные:

Шаг 1: Средняя цена
Считаем среднее значение: (100 + 200 + 150) / 3 = 150. Изначально мы предсказываем для всех домов 150.
Шаг 2: Считаем Остатки (ошибки)
Вычитаем предсказание из фактической цены:
Дом 1: 100 – 150 = -50
Дом 2: 200 – 150 = 50
Дом 3: 150 – 150 = 0

Шаг 3: Дерево для предсказания ошибки
Группируем по локациям:
Локация A (дома 1 и 3): средняя ошибка= (-50 + 0) / 2 = -25
Локация B (дом 2): ошибка= 50

Шаг 4: Корректируем прогнозы
Допустим что скорость обучения (learning rate) = 0.1:
Дом 1: 150 + 0.1 * (-25) = 147.5
Дом 2: 150 + 0.1 * 50 = 155
Дом 3: 150 + 0.1 * (-25) = 147.5

Шаг 5: Пересчитываем ошибки
Рассчитываем обновлённые ошибки:
Дом 1: 100 – 147.5 = -47.5
Дом 2: 200 – 155 = 45
Дом 3: 150 – 147.5 = 2.5

Далее мы могли бы повторять [4] шаги, добавляя новые корректирующие слои, но для простоты остановимся здесь. Интересный факт в том что Gradient Boosting может работать с пропусками в данных без дополнительной предобработки, что крайне удобно для реальных грязных датасетов.
Gradient Boosting идеален для структурированных/табличных данных, требует меньше данных для высокой точности, проще в настройке.
Нейросети же лучше справляются с неструктурированными данными (изображения, текст) и для их тренировки нужно больше ресурсов.
Почему выбирают Gradient Boosting?
Высокая точность, часто превосходит другие алгоритмы (логистическую регрессию, случайные леса, нейросети) на табличных данных.
Работа с табличными данными. В отличие от нейросетей, алгоритм заточен на числовые и категориальные признаки.
Встроенный выбор признаков – алгоритм сам оценивает важность переменных, упрощая интерпретацию модели.
Улавливает сложные взаимосвязи автоматически, т.е. способен обнаруживать нелинейные зависимости без ручной генерации признаков.
Устойчивость к оверфитингу – современные реализации (XGBoost, LightGBM, CatBoost) используют регуляризацию для эффективной борьбы с переобучением.
Универсальность – эффективен для регрессии, классификации, ранжирования.
Хорошая базовая производительность – часто работает «из коробки» лучше, чем нейросети.
XGBoost (Extreme Gradient Boosting, автор — Tianqi Chen) – оптимизирован по скорости, точности и масштабируемости. Лидер на Kaggle.
LightGBM – создан Microsoft Research, дает ускоренное обучение на больших данных через гистограммные алгоритмы и leaf-wise рост деревьев. Идеален для больших датасетов.
CatBoost – создан в Yandex: дает улучшенную обработка категориальных признаков и идеален для таких залач, собственно автоматически обрабатывает категориальные признаки так что это не нужно делать вручную.
Пишите ваши вопросы в комментариях.
На этом всё, удачи!
Автор: Squirrelfm
Источник [5]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/13120
URLs in this post:
[1] обучении: http://www.braintools.ru/article/5125
[2] ошибки: http://www.braintools.ru/article/4192
[3] математике: http://www.braintools.ru/article/7620
[4] повторять: http://www.braintools.ru/article/4012
[5] Источник: https://habr.com/ru/companies/raft/articles/890802/?utm_campaign=890802&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.