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

Random Forest

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

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

Направления: Машинное обучение · Классический ML

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

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

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

Какую задачу решает

Одно дерево неустойчиво: оно улавливает не только сигнал, но и случайности конкретной выборки. использует это как ресурс — обучает сотни деревьев на разных бутстрэп-подвыборках и усредняет их ответы. Ошибки, вызванные случайностью, у разных деревьев разные и при усреднении гасят друг друга; сигнал остаётся.

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

Почему усреднение работает

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

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

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

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

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

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

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

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

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

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

Где применяется

  • Надёжная Работает почти из коробки на любых табличных данных — с этого начинают, если настраивать некогда.
  • Оценка Быстрый способ понять, что вообще влияет на цель, до построения финальной модели.
  • Шумные данныеУсреднение делает лес устойчивым к выбросам и ошибкам разметки.
  • вырос из той же идеи случайных деревьев.
  • Многоклассовые задачиРаботает с десятками классов без специальных ухищрений.

Плюсы, минусы и альтернативы

Плюсы

  • Почти не требует настройки: значения по умолчанию обычно уже неплохи.
  • Практически не переобучается с ростом числа деревьев.
  • OOB даёт честную оценку качества бесплатно, без отложенной выборки.
  • Параллелится идеально: деревья независимы.
  • Устойчив к выбросам, шуму и нерелевантным признакам.

Минусы

  • Обычно уступает градиентному бустингу на 1–3% метрики.
  • Модель тяжёлая: сотни деревьев в памяти, медленнее .
  • Интерпретируемость отдельного дерева потеряна.
  • Плохо работает с очень разреженными признаками (текст) — там линейные модели лучше.
  • Не экстраполирует: предсказание всегда внутри диапазона обучающих значений.

Брать, если

  • Нужна крепкая модель без времени на настройку.
  • Данные шумные, с и ошибками разметки.
  • Нужна быстрая оценка .
  • Отложенной выборки нет, а честная оценка нужна — используйте 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, и на валидации.

Кому эта тема нужна

Профильная компетенция для ролей: Data Scientist, ML Engineer, Инженер рекомендаций.

Усиливает профиль: Аналитик данных, Продуктовый инженер.

Следующий шагДальше по связи: Gradient BoostingПоследовательное построение деревьев, каждое из которых исправляет ошибки предыдущего ансамбля.Перейти →

Глава «Классическое машинное обучение» последний раз правилась . Нашли ошибку — напишите.