Открыть сервисСервис

Градиентный бустинг — метод машинного обучения

Градиентный бустинг — это алгоритм машинного обучения, основанный на последовательном построении ансамбля слабых моделей (как правило, решающих деревьев), где каждая следующая модель обучается на ошибках предыдущих. Метод относится к классу ансамблей boosting и применяется в задачах регрессии и классификации. Градиентный бустинг считается одним из наиболее эффективных алгоритмов табличных данных и широко используется в промышленном машинном обучении, соревнованиях по data science и аналитике.

Принцип работы

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

Формально процесс выглядит следующим образом. Пусть дана обучающая выборка и выбрана функция потерь L(y, F(x)), которую необходимо минимизировать. На нулевом шаге строится простая базовая модель F₀(x), например константа, равная среднему значению целевой переменной. На каждом следующем шаге t вычисляется антиградиент функции потерь — отрицательное производное L по текущему предсказанию F(x_{t-1}). Затем обучается новое дерево h_t(x), которое аппроксимирует этот антиградиент. Предсказание ансамбля обновляется с учётом шага обучения η:

F_t(x) = F_{t-1}(x) + η · h_t(x).

Параметр η (learning rate) контролирует вклад каждой новой модели и служит средством регуляризации: малые значения η замедляют обучение, но уменьшают риск переобучения. Именно поэтому градиентный бустинг обычно требует большого числа итераций, но даёт более устойчивую модель.

Отличие от бэггинга и случайного леса

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

Практическое следствие различий: случайный лес менее склонен к переобучению при увеличении числа деревьев и почти не требует тонкой настройки гиперпараметров, тогда как градиентный бустинг чувствителен к настройке learning rate, глубины деревьев, числа итераций и других параметров, но при грамотной настройке обычно достигает более высокой точности.

Основные реализации

XGBoost

XGBoost (eXtreme Gradient Boosting) — открытая библиотека, представленная в 2016 году Тяньци Ченом и Карлосом Гестрином. Алгоритм использует регуляризованную целевую функцию с L1- и L2-штрафами на веса деревьев, встроенные механизмы работы с пропущенными значениями и эффективные методы распределённого и многопоточного вычисления. XGBoost многократно побеждал в соревнованиях на платформе Kaggle и стал де-факто стандартом для задач на табличных данных.

LightGBM

LightGBM — библиотека, разработанная исследовательской группой Microsoft в 2017 году. Ключевые особенности — алгоритмы GOSS (Gradient-based One-Side Sampling) и EFB (Exclusive Feature Bundling), которые снижают вычислительную сложность на больших выборках. LightGBM обучается заметно быстрее XGBoost на крупных датасетах и активно применяется в промышленных системах, в том числе в российских IT-компаниях.

CatBoost

CatBoost — библиотека от компании Яндекс, открытая в 2017 году. Главное преимущество — встроенная обработка категориальных признаков с помощью целевого кодирования с перестановками (ordered target statistics), что устраняет необходимость ручного кодирования и снижает утечку таргета. CatBoost демонстрирует сильные результаты «из коробки» при минимальной настройке гиперпараметров.

Гиперпараметры

Ключевые гиперпараметры градиентного бустинга:

  • Число деревьев (n_estimators) — количество итераций бустинга; увеличение повышает точность до определённого предела, после которого начинается переобучение.
  • Глубина деревьев (max_depth) — обычно небольшая (3–8), так как строятся «слабые» деревья.
  • Learning rate (eta) — шаг добавления новой модели; типичные значения 0,01–0,3.
  • Subsample — доля объектов, используемых для обучения каждого дерева; значения менее 1 вносят стохастический эффект и регуляризацию.
  • Минимальное число объектов в листе (min_child_weight) — ограничивает сложность листьев.
  • L1- и L2-регуляризация — штрафы на веса листьев, борющиеся с переобучением.

Применение

Градиентный бустинг применяется в задачах, где данные представлены в виде структурированных (табличных) признаков: кредитный скоринг, антифрод, прогнозирование оттока, рекомендательные системы, предсказание спроса, оценка рисков. В отличие от глубоких нейронных сетей, бустинг эффективен на выборках с десятками тысяч признаков и объектов, не требует масштабирования признаков и допускает смешанные типы данных (числовые и категориальные).

В России градиентный бустинг активно используется в банках (Сбер, Тинькофф), телекоме, ритейле и госсекторе. CatBoost, разработанный Яндексом, применяется в поисковых и рекламных системах компании.

Ограничения

Метод чувствителен к выбросам и зашумлённым меткам, поскольку последовательная коррекция ошибок может усиливать влияние аномальных объектов. Бустинг хуже масштабируется по сравнению со случайным лесом при распараллеливании, так как итерации последовательны. На данных с высокой долей пропусков и сложными пространственными зависимостями (изображения, тексты) нейронные сети обычно превосходят бустинг.

Историческая справка

Идея бустинга была предложена Робертом Шапиро и Лесли Валлиантом в 1990 году. В 1999 году Джером Фридман предложил градиентный бустинг — обобщение бустинга на произвольные дифференцируемые функции потерь. Существенный вклад в развитие метода внесли Льво Брейман (AdaBoost, bagging), Йоав Фройнд и Роберт Шапире (AdaBoost, 1997), а также создатели современных библиотек — XGBoost, LightGBM и CatBoost.

Источники:

  • Friedman J. H. Greedy Function Approximation: A Gradient Boosting Machine. — Annals of Statistics, 2001.
  • Chen T., Guestrin C. XGBoost: A Scalable Tree Boosting System. — Proceedings of KDD, 2016.
  • Ke G. et al. LightGBM: A Highly Efficient Gradient Boosting Decision Tree. — Advances in NeurIPS, 2017.
  • Prokhorenkova L. et al. CatBoost: unbiased boosting with categorical features. — Advances in NeurIPS, 2018.
  • Breiman L. Bagging Predictors. — Machine Learning, 1996.
  • Freund Y., Schapire R. E. A Decision-Theoretic Generalization of On-Line Learning. — Journal of Computer and System Sciences, 1997.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru