Классическое машинное обучение

Gradient Boosting

Градиентный бустинг

актуальноТекущий рабочий стандарт

Последовательное построение деревьев, каждое из которых исправляет ошибки предыдущего ансамбля.

Что означает каждый компонент
  • ансамбль после m-й итерации
  • то, что уже построено на прошлых шагах — оно не переобучается заново
  • скорость обучения: доля, с которой новое дерево входит в ансамбль (обычно 0.01–0.1)
  • новое дерево; оно приближает антиградиент потерь — для MSE это просто остатки

Ключевые тезисы

  • Каждое дерево аппроксимирует антиградиент функции потерь.
  • Learning rate и число деревьев связаны обратно: меньше шаг — больше итераций.
  • Стандарт де-факто для табличных задач при наличии достаточного объёма данных.

Подробный разбор

3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Последовательное исправление ошибок

Каждое следующее дерево учится на том, что не смогли предыдущие.

Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков
  • функция потерь — то, что минимизируется при обучении
  • частная производная — чувствительность к одному аргументу

Для MSE антиградиент — это просто остаток , поэтому первое объяснение бустинга всегда звучит как «второе дерево предсказывает ошибку первого». Для других функций потерь вместо остатка стоит их градиент.

Числовой пример

, среднее . Остатки: . Первое дерево предсказывает их приближённо, скажем . При новый ответ: , остатки уменьшились до .

-3-113-202xy
моделей в ансамбле5
MSE на обучении0.205
типбустинг (последовательно)
Ансамбль
Режим «Бустинг»: добавляйте модели по одной и смотрите, как ступенчатая функция всё точнее повторяет данные
2

Главные гиперпараметры

Что крутить в первую очередь и как они связаны друг с другом.

ПараметрЭффектТипичные значения
learning_rate νвклад каждого дерева0.01–0.1
n_estimatorsчисло деревьевподбирается по early stopping
max_depthсложность базовой модели3–8
subsampleдоля объектов на дерево0.7–1.0
colsampleдоля признаков на дерево0.7–1.0
На практике

ν и число деревьев связаны обратно: уменьшили шаг вдвое — увеличивайте число деревьев примерно вдвое. Практика: зафиксировать небольшой ν, поставить заведомо большое число деревьев и остановиться по валидации.

3

Бустинг и разложение ошибки

Почему бустинг бьёт по смещению, а бэггинг — по разбросу.

Обозначения
  • дисперсия — мера разброса значений
  • стандартное отклонение — разброс величины
  • объект: вектор признаков
  • Бэггинг берёт глубокие деревья (малое смещение, большой разброс) и усредняет — падает Var.
  • Бустинг берёт неглубокие деревья (большое смещение, малый разброс) и складывает — падает Bias.
  • Поэтому бустинг переобучается при слишком большом числе итераций, а случайный лес — почти нет.
-3-113-4-2024xy
степень полинома3
ошибка на train0.568
ошибка на test0.395
диагнозбаланс
Крайности сложности: слева систематическая ошибка, справа — подгонка под шум

Связанные темы

Ансамблирование · Деревья и ансамбли

Random Forest98%

Случайный лес · Классическое машинное обучение

Бэггинг деревьев со случайными подвыборками объектов и признаков: усреднение резко снижает дисперсию.

Stacking and Blending85%

Стекинг и блендинг · Классическое машинное обучение

Ансамбль из разнородных моделей, поверх которых обучается мета-модель. Стандартный приём соревнований и способ выжать последние проценты.

Variance85%

Дисперсия · Математический справочник

Мера разброса значений вокруг среднего.

Cross-validation85%

Кросс-валидация · Оценка моделей

Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.

Decision Trees85%

Решающие деревья · Классическое машинное обучение

Последовательность вопросов «признак > порог», разбивающая пространство на прямоугольные области.

XGBoost85%

XGBoost · Классическое машинное обучение

Реализация бустинга с регуляризацией в функции потерь, вторым порядком оптимизации и продуманной работой с разреженностью.

LightGBM85%

LightGBM · Классическое машинное обучение

Быстрый бустинг от Microsoft: гистограммное разбиение и рост дерева по листьям вместо по уровням.

CatBoost85%

CatBoost · Классическое машинное обучение

Бустинг от Яндекса с упорядоченным кодированием категорий и упорядоченным бустингом против смещения.

SHAP85%

SHAP · Интерпретируемость моделей

Распределение вклада признаков на основе значений Шепли из теории игр — с гарантиями аддитивности и согласованности.

Encoding85%

Кодирование категорий · Данные

Перевод категориальных признаков в числа: one-hot, ordinal, target encoding, хеширование, эмбеддинги.