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

Random Forest

Случайный лес

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

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

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

  • Деревья строятся независимо, поэтому обучение легко параллелится.
  • OOB-оценка даёт качество без отдельной валидационной выборки.
  • Надёжный бейзлайн: почти не требует настройки гиперпараметров.

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

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

1

Бэггинг и бутстрэп

Почему усреднение независимых моделей снижает разброс.

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

Обозначения
  • дисперсия — мера разброса значений
  • стандартное отклонение — разброс величины
  • суммирование по всем перечисленным элементам
Разброс падает в раз только при независимых моделях; корреляция ставит предел

Именно поэтому случайный лес дополнительно выбирает случайное подмножество признаков в каждом узле: это снижает между деревьями и делает усреднение эффективнее.

-3-113-202xy
моделей в ансамбле5
MSE на обучении0.205
типбустинг (последовательно)
Ансамбль
Переключайтесь между бэггингом и бустингом и увеличивайте число моделей — видно, как по-разному они приближают зависимость
2

OOB-оценка и важности признаков

Два бесплатных бонуса, которые даёт бутстрэп.

При бутстрэпе примерно объектов не попадают в выборку дерева. На них можно измерить качество без отдельной валидации — это и есть OOB-оценка.

  • Встроенная важность (по снижению неоднородности) смещена в пользу признаков с большим числом уникальных значений.
  • Перестановочная важность честнее: перемешиваем признак и смотрим падение качества на OOB.
  • Коррелированные признаки делят важность между собой — не читайте важности как «вклад в причину».
На практике

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

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

Ансамблирование · Переобучение и регуляризация · Деревья и ансамбли

Gradient Boosting98%

Градиентный бустинг · Классическое машинное обучение

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

Variance97%

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

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

Stacking and Blending85%

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

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

Cross-validation85%

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

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

Decision Trees85%

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

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

XGBoost85%

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

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

LightGBM85%

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

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

CatBoost85%

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

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

SHAP85%

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

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

Encoding85%

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

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

Regularization80%

Регуляризация · Оптимизация обучения

Любое ограничение сложности модели, снижающее переобучение.

Weight Decay80%

Затухание весов · Оптимизация обучения

Постепенное сжатие весов к нулю на каждом шаге оптимизации.

Early Stopping80%

Ранняя остановка · Оптимизация обучения

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

Overfitting80%

Переобучение · Практика ML

Модель запомнила обучающую выборку вместе с шумом: train-метрика отличная, val — плохая.

Underfitting80%

Недообучение · Практика ML

Модель слишком проста или недоучена: ошибка велика и на train, и на валидации.