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

Построение дерева решений

Как построить дерево решений? Какие функции искать? А какие бинарные вопросы задавать?

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

Итак, на данный момент есть три подпроблемы. Какую характеристику выбрать? Какой бинарный вопрос задать? И как оценить, какое решение даст максимальный результат?

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

Еще об энтропии:

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

Прирост информации: Прирост информации — это разница между энтропией системы до принятия решения и энтропией системы после принятия решения.

Давайте рассмотрим пример, чтобы лучше понять получение информации.

Рассмотрим разделение подструктуры дерева, как показано ниже. Предположим, что Family и CCAvg — это две действующие функции.

Начальная энтропия системы рассчитывается следующим образом:

Рассчитав информационный прирост обоих решений, получаем следующее.

Получение информации о решении-1

Получение информации о решении-2

Рассматривая оба решения, мы выбираем решение с максимальным приростом информации. В этом случае мы пойдем с Решением-2

Когда остановить рекурсивное разбиение?

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

Max-Depth : максимальная глубина, на которую может расти дерево.

Min_samples_leaf : минимальное количество выборок, которое может иметь конечный узел.

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

Подробнее об этом можно узнать здесь

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

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

Недостатки:

  • Пока мы принимаем решения, поскольку мы проверяем все возможные значения для каждой функции, небольшие различия в данных могут создавать разные деревья. Следовательно, ошибка, которая представляет собой сочетание дисперсии и смещения, высока из-за ошибки из-за дисперсии. Мы можем комбинировать несколько лесов решений (пакетирование) и создать алгоритм машинного обучения с низкой дисперсией, называемый случайными лесами, который очень стабилен.
  • Если гиперпараметры не установлены должным образом с помощью перекрестной проверки, деревья решений могут легко перестроиться.

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