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

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

Случайный лес (англ. Random Forest) — это ансамблевый метод машинного обучения, предназначенный для задач классификации, регрессии и кластеризации, основанный на построении множества решающих деревьев и объединении их прогнозов. Метод сочетает в себе две ключевые идеи: «бэггинг» (bootstrap aggregating) и случайный подбор признаков при построении каждого дерева, что позволяет существенно повысить точность и устойчивость модели по сравнению с одиночным решающим деревом, а также снизить склонность к переобучению. Случайный лес считается одним из наиболее эффективных и широко применяемых алгоритмов машинного обучения общего назначения.

История

Метод случайного леса был предложен Лео Брейманом, американским статистиком, в 2001 году. Первая публикация, в которой был формализован алгоритм, вышла в журнале Machine Learning под названием «Random Forests» (Брейман, 2001). В своей работе Брейман обобщил и развил более ранние идеи: использование «бэггинга» (предложенного им же в 1996 году) и случайного подпространства признаков, введённого Тин Кам Хо в 1998 году. Брейман экспериментально показал, что случайный лес не склонен к переобучению при увеличении числа деревьев и демонстрирует высокую точность на многих задачах.

До появления случайного леса решающие деревья (например, C4.5, CART) были популярны благодаря интерпретируемости, но страдали от высокой дисперсии — небольшие изменения в данных приводили к существенному изменению дерева. Ансамблевые методы, такие как бэггинг, частично решали эту проблему, но не использовали декорреляцию деревьев за счёт случайного выбора признаков. Случайный лес стал естественным развитием, объединив оба подхода.

Основные принципы

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

Бэггинг

Бэггинг (Bootstrap Aggregating) заключается в создании \( N \) обучающих выборок путём случайного извлечения с возвращением (бутстреп) из исходного набора данных. Каждое решающее дерево обучается на своей бутстреп-выборке. Использование бутстрепа приводит к тому, что примерно 63% уникальных объектов исходного набора попадают в каждую выборку, а оставшиеся 37% (так называемые «out-of-bag», OOB-объекты) не участвуют в обучении данного дерева. OOB-объекты используются для оценки ошибки модели без необходимости отдельной тестовой выборки.

Случайный подбор признаков

При построении каждого узла решающего дерева алгоритм рассматривает не все \( p \) признаков, а лишь случайное подмножество из \( m \) признаков (\( m < p \)). В задачах классификации стандартное значение \( m \) равно \( \sqrt{p} \), в задачах регрессии — \( p/3 \) (округляется вниз). Это усиливает декорреляцию деревьев: если бы все деревья использовали одни и те же наиболее информативные признаки, они были бы сильно похожи, и ансамбль давал бы лишь небольшое улучшение по сравнению с одиночным деревом. Случайный подбор признаков вынуждает деревья искать различные закономерности в данных.

Алгоритм обучения

  1. Выбрать количество деревьев \( T \) и количество признаков \( m \) для каждого узла.
  2. Для \( i \) от 1 до \( T \):
  1. Сохранить все построенные деревья.

Предсказание

Ключевые параметры

Преимущества и недостатки

Преимущества

Недостатки

Применение

Случайный лес применяется в широком спектре прикладных задач машинного обучения, где требуется классификация или регрессия на табличных данных:

Важность признаков

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

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

Реализации

Наиболее популярные реализации случайного леса:

Связь с другими методами

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

Критика и ограничения

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

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →