Деревья решений и случайные леса (Decision Trees and Random Forests)
Дерево решений (decision tree) — это машина, которая учит блок-схему из вопросов «да/нет» прямо на ваших данных. Случайный лес (random forest) — это целая толпа таких блок-схем, которые голосуют вместе. В этом уроке вы построите дерево вручную, посмотрите, как оно принимает решение, точно поймёте, как оно выбирает свои вопросы, и увидите, почему толпа деревьев побеждает одно дерево.
Представьте продавщицу в Оше, которая решает, купит ли вошедший человек дорогой телефон. Она не решает уравнения в уме. Она задаёт небольшие вопросы: «Этот человек молодой или пожилой? Похоже ли, что у него есть деньги на траты?» Каждый ответ ведёт её по своему мысленному пути, и в конце пути она делает предположение: купит или не купит.
Дерево решений — это именно это, записанное в виде схемы и выученное автоматически по прошлым данным. Это одна из самых понятных для человека моделей во всём машинном обучении: её можно буквально распечатать и следовать по стрелкам. Случайный лес берёт много таких деревьев, каждое чуть отличается от других, и позволяет им голосовать. Голосование обычно точнее и намного стабильнее, чем любое отдельное дерево.
- Читать дерево решений как блок-схему и проследить один пример от корня (root) вниз до листа (leaf).
- Объяснить, как дерево выбирает свои вопросы, делая группы чище, и вычислить простую примесь Джини (Gini impurity) вручную.
- Понять глубину (depth), листья и почему неограниченное дерево запоминает (переобучается на, overfits) обучающие данные.
- Перечислить реальные сильные стороны (не нужно масштабирование, смешанные признаки, читаемость) и слабые стороны (нестабильность, переобучение) одного дерева.
- Объяснить, как случайный лес использует случайность и голосование, чтобы исправить эти слабости, и читать его важность признаков (feature importance).
- Решать, когда выбирать деревья/леса, а когда — линейную модель, и писать код на sklearn для обоих.