---
title: Случайный лес
seo:
  title: Случайный лес — Data Scientist
  description: "Тема «Случайный лес» для собеседования Data Scientist. Что такое случайный лес, как строится? Каковы плюсы и минусы использования метода случайного леса?"
---

[Все темы Data Scientist](/data-scientist)

## <strong>Что такое случайный лес, как строится?</strong> [#q-14bee738d69b81089c76df7c3f9b24f1]

Случайный лес - это ансамблевый метод машинного обучения, основанный на комбинации нескольких деревьев решений. Он использует метод бэггинга (bootstrap aggregating), чтобы построить ансамбль деревьев решений.

Вот основные шаги построения случайного леса&#58;

1. <strong>Выбор случайной подвыборки данных</strong>&#58; Из обучающего набора
   данных случайным образом выбирается подвыборка данных с возвращением. Это
   означает, что одно и то же наблюдение может быть выбрано несколько раз, а
   другие наблюдения могут быть пропущены.

1. <strong>Построение деревьев решений</strong>&#58; Для каждой случайной
   подвыборки данных строится дерево решений. При построении каждого дерева
   решений на каждом узле выбирается случайное подмножество признаков из всех
   доступных признаков. Это помогает сделать деревья более разнообразными и
   уменьшает корреляцию между деревьями.

1. <strong>Обучение деревьев решений</strong>&#58; Для каждой случайной
   подвыборки данных строится дерево решений с использованием выбранных
   признаков. Каждое дерево строится до тех пор, пока не будет выполнено
   какое-то критерий останова (например, достигнута максимальная глубина дерева
   или достигнуто минимальное количество наблюдений в листе).

1. <strong>Формирование ансамбля</strong>&#58; После построения всех деревьев
   решений их результаты комбинируются для получения окончательного прогноза. В
   задачах классификации результаты обычно усредняются или используется
   голосование большинства, а в задачах регрессии результаты усредняются.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## <strong>Каковы плюсы и минусы использования метода случайного леса?</strong> [#q-14bee738d69b816e8117ca31656f4d6f]

🟢 Плюсы использования метода случайного леса&#58;

1. <strong>Устойчивость к переобучению</strong>&#58; Благодаря случайному выбору
   подмножества данных и признаков для построения каждого дерева, случайный лес
   склонен к более устойчивому обобщению на новых данных и предотвращает
   переобучение.

1. <strong>Хорошая обобщающая способность</strong>&#58; Случайный лес часто
   демонстрирует хорошую производительность на различных типах данных и задачах,
   включая как классификацию, так и регрессию.

1. <strong>Способность к обработке больших объемов данных</strong>&#58;
   Случайный лес способен обрабатывать большие объемы данных эффективно и
   параллельно благодаря своей схеме построения.

🔴 Минусы использования метода случайного леса&#58;

1. Затраты при большом числе деревьев&#58; растут память и время вычислений. Добавление деревьев обычно стабилизирует усреднение; переобучение леса больше связано с данными и сложностью отдельных деревьев.

1. <strong>Сложность интерпретации</strong>&#58; Из-за использования большого
   количества деревьев и случайного выбора признаков для каждого дерева,
   интерпретация случайного леса может быть сложной по сравнению с более
   простыми моделями.

1. <strong>Временные затраты на обучение</strong>&#58; Построение большого
   количества деревьев в случайном лесу может потребовать значительных
   вычислительных ресурсов и времени для обучения модели.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## <strong>Какой глубины деревья используются в методе случайного леса?</strong> [#q-14bee738d69b817a85dfd228b77df8d3]

В случайном лесе часто используют глубокие деревья, в том числе без ограничения max_depth. Разнообразие деревьев и усреднение уменьшают разброс прогнозов. Глубину и минимальный размер листа подбирают по валидации с учётом качества и ресурсов.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## Как добавление дерева влияет на переобучение случайного леса и градиентного бустинга? [#q-14bee738d69b81288bb7d7286241c20f]

Добавление дерева по-разному влияет на случайный лес и градиентный бустинг.

<strong>Случайный лес</strong> <code>&#40;Random Forest&#41;</code>
<strong>&#58;</strong> Поскольку случайный лес строится на основе ансамбля
деревьев решений, добавление нового дерева улучшает стабильность модели и
снижает ее склонность к переобучению. Каждое новое дерево вносит свой уникальный
вклад в ансамбль, усиливая обобщающую способность модели.

Градиентный бустинг&#58; новое дерево улучшает соответствие обучающим данным, но после некоторого числа итераций качество на новых данных может ухудшаться. Число итераций выбирают по валидации или ранней остановке.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## Почему случайный лес, обученный на положительных значениях, выдаёт отрицательные прогнозы и как это проверить? [#q-14bee738d69b8103b87cc06c1bbf7732]

Если речь о положительных целевых значениях y, обычный RandomForestRegressor с усреднением не должен выдавать отрицательный прогноз&#58; значения листьев и их среднее остаются в диапазоне обучающих целей. Положительность только входных признаков X такого ограничения не даёт. Проверьте следующие причины&#58;

1. <strong>Проблемы в данных</strong>&#58; Возможно, в исходных данных
   содержатся ошибки или аномалии, которые приводят к неправильному обучению
   модели.

1. Проверьте преобразования целевой переменной и обратное преобразование прогноза. Само переобучение не выводит среднее положительных целей за пределы их диапазона.

1. <strong>Неуместное представление данных</strong>&#58; Может потребоваться
   изменить представление данных или применить преобразования, чтобы
   гарантировать положительные результаты.

1. Проверьте тип модели и способ объединения прогнозов&#58; утверждение относится к обычному лесу с усреднением и неотрицательными весами.

1. <strong>Ошибка в коде или реализации модели</strong>&#58; Возможно, есть
   ошибка в коде или реализации модели, которая приводит к неправильным выводам.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## <strong>Какие изменения происходят при добавлении дерева в случайный лес?</strong> [#q-14bee738d69b8182bfd5e41cbb18e88e]

При добавлении дерева в случайный лес происходят следующие изменения&#58;

1. <strong>Увеличение разнообразия</strong>&#58; Добавление нового дерева
   увеличивает разнообразие модели, так как каждое дерево строится на основе
   случайной подвыборки данных и случайного подмножества признаков.

1. <strong>Усиление стабильности</strong>&#58; Ансамбль деревьев становится
   более стабильным и устойчивым к переобучению, поскольку модель усредняет
   прогнозы множества деревьев.

1. <strong>Улучшение обобщающей способности</strong>&#58; Поскольку случайный
   лес усредняет прогнозы отдельных деревьев, добавление нового дерева может
   улучшить обобщающую способность модели на новых данных.

1. Рост затрат&#58; хранение нового дерева и вычисление его прогноза требуют дополнительной памяти и времени.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## <strong>Какие изменения происходят при увеличении глубины деревьев в случайном лесе?</strong> [#q-14bee738d69b81899d05dd74e8fe8d74]

При увеличении глубины деревьев в случайном лесе происходят следующие изменения&#58;

1. <strong>Увеличение сложности модели</strong>&#58; Увеличение глубины деревьев
   позволяет модели захватывать более сложные взаимосвязи между признаками и
   целевой переменной.

1. <strong>Потенциальное улучшение точности</strong>&#58; Глубокие деревья
   способны делать более точные прогнозы на обучающих данных за счет лучшего
   разделения их на классы или категории.

1. <strong>Повышение риска переобучения</strong>&#58; Однако увеличение глубины
   деревьев может также увеличить риск переобучения модели, особенно если данных
   недостаточно или отсутствуют методы регуляризации.

1. <strong>Увеличение вычислительной сложности</strong>&#58; Более глубокие
   деревья требуют больше вычислительных ресурсов для обучения и
   прогнозирования, что может повлиять на производительность модели.

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::

---

## <strong>Как происходит подбор подмножества признаков для дерева случайного леса - один раз перед построением дерева или на каждом разбиении?</strong> [#q-14bee738d69b812ea2b9cb3671640e71]

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

:::note[Ссылки для изучения]

1. [Ансамбли в машинном обучении](https://education.yandex.ru/handbook/ml/article/ansambli-v-mashinnom-obuchenii)
   :::
