---
title: Дерево решений
seo:
  title: Дерево решений — Data Scientist
  description: Тема «Дерево решений» для собеседования Data Scientist. Как строится дерево решений? Может ли дерево решений показывать вероятность?
---

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

## <strong>Как строится дерево решений?</strong> [#q-14bee738d69b8169be9bea4dea1214ed]

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

1. <strong>Выбор признака для разбиения</strong>&#58; На каждом узле дерева
   выбирается признак, по которому данные будут разделены на две или более
   подгруппы. Этот выбор основывается на критерии разделения, таком как
   информационная энтропия или критерий Джини.

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

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

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## <strong>Может ли дерево решений показывать вероятность?</strong> [#q-14bee738d69b8161b485fc462c6e2420]

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

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

Стандартные реализации, например DecisionTreeClassifier в scikit-learn, предоставляют predict_proba. Вероятности вычисляются по долям классов в листе с учётом весов объектов. Калибровка может улучшить эти оценки, но не нужна для самого их получения.

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## <strong>Как получается ответ целевой переменной в дереве решений?</strong> [#q-14bee738d69b813c8b0af0d4d05dc0af]

В дереве решений ответ целевой переменной получается путем прохождения через структуру дерева от корня к листьям.

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

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## Что измеряет энтропия в дереве решений и как она используется при разбиении? [#q-14bee738d69b815eaacffb9ed95edda1]

В контексте деревьев решений, энтропия - это мера неопределенности в данных. Энтропия показывает, насколько хорошо данные разделены по целевой переменной&#58; чем меньше энтропия, тем более чистыми являются группы данных в узле.

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

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

При выборе разбиения для нового узла в регрессионном дереве обычно оптимизируется среднеквадратичная ошибка <code>&#40;MSE&#41;</code> или средняя абсолютная ошибка <code>&#40;MAE&#41;</code> на основе значений целевой переменной в подгруппах данных, полученных в результате разбиения.

Среднеквадратичная ошибка <code>&#40;MSE&#41;</code> оптимизируется, когда модель стремится минимизировать сумму квадратов отклонений между прогнозируемыми значениями и фактическими значениями целевой переменной.

Средняя абсолютная ошибка <code>&#40;MAE&#41;</code> оптимизируется, когда модель стремится минимизировать среднее абсолютное отклонение между прогнозируемыми значениями и фактическими значениями целевой переменной.

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## <strong>За что отвечает</strong> <code>L2</code> <strong>регуляризация в дереве?</strong> [#q-14bee738d69b8146b2f2ed21819bfccc]

В дереве решений <code>L2</code> регуляризация, также известная как регуляризация Тихонова или регуляризация <code>Ridge</code>, обычно не применяется напрямую, как в линейной регрессии или в методах оптимизации с градиентным спуском.

Сложность дерева регулируют max_depth, min_samples_leaf, max_leaf_nodes и обрезкой. В бустингах, например XGBoost, L2-регуляризация может дополнительно штрафовать значения листьев.

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## <strong>На каком условии останавливается построение дерева решений, другими словами, как определяется критерий завершения построения дерева?</strong> [#q-14bee738d69b81fe8febe369936c678b]

Построение дерева решений останавливается на основе различных критериев или условий, которые определяются заранее или в процессе построения модели. Некоторые из распространенных критериев останова включают&#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/reshayushchiye-derevya)
   :::

---

## <strong>Что будет с метрикой качества если убрать одно случайное дерево из случайного леса и бустинга?</strong> [#q-14bee738d69b81178e44e54601739ada]

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::

---

## <strong>Что лежит в листьях дерева?</strong> [#q-14bee738d69b81ca9c04d957074fd03a]

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

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

1. [Решающие деревья](https://education.yandex.ru/handbook/ml/article/reshayushchiye-derevya)
   :::
