Деревья решений 🌲



🌳 Друзья, сегодня я хочу начать серию постов про решающие деревья, алгоритмы и понятия, связанные с ними. Не вижу смысла вас убеждать, что это одни из тем, которые часто спрашивают на собеседованиях. Более того, рандомные леса и бустинги на сегодняшний день можно назвать самыми мощными моделями для предсказания табличных данных (а как правило в бизнесе в основном такие и встречаются).  Будем с вами последовательны, начнем с основ, поговорим зачем вообще были придуманы решающие деревья, введем определения, а затем будем обсуждать темы сложнее. Следите за постами, следите за рубриками «Вопросы с собеседований». Мы начинаем…



Почему решающие деревья хороши? Мы с вами часто говорили линейные модели – безусловно, такие модели легко и быстро обучать даже на большом количестве объектов, легко регуляризовать, но есть и минусы… Линейные модели умеют восстанавливать только линейные зависимости между целевой переменной и признаками. Поэтому мы будем говорить про семейство моделей, позволяющее предсказывать нелинейные зависимости разной сложности – решающие деревья.



🧐 Что такое решающее дерево? Представьте, что вы хотите придумать модель, которая с высокой вероятностью определяет болен ли человек болезнью N. Если бы человека осматривал врач, он задал бы ему ряд вопрос, которые помогли бы поставить корректный диагноз. Например: «Вам больше 65 лет?», если ответ положительный, то продолжаем вести опрос, если отрицательный – исключаем болезнь с высокой вероятностью. Затем «Жалуетесь ли на резкие боли в грудной клетке?», аналогично, если ответ положительный, то продолжаем вести опрос, если отрицательный – исключаем болезнь с высокой вероятностью и так далее… Замечаем, что подобные вопросы напоминают алгоритм, который хорошо описывается решающим деревом. Кажется очень логично и понятно.



А есть ли недостатки у решающих деревьев? К сожалению, да. Например, деревья достаточно трудно оптимизировать, так происходит из-за того, что они имеют дискретную структуру: здесь нельзя применить градиентный спуск и найти экстремум. Число параметров в дереве может меняться в зависимости от его глубины (чем дерево больше, тем больше тех самых «вопросов про больного» придется задать, такие вопросы будем назвать предикатами). Скорее всего, вам может показаться, что большинство методов построения решающих деревьев являются крайне эврестичными.



 📌 Какие задачи решают решающие деревья? Решающие деревья используют и для решения задач классификации, и для задач регрессии.



🌲Решающие деревья чаще всего не используют отдельно, их объединяют в композиции (об этом мы поговорим в следующих постах). Получаются решающие леса - модели, которые давно зарекомендовали себя, как модели с минимальной ошибкой на тестовых данных.