Дерево решений — это контролируемый алгоритм классификации и регрессии, также называемый алгоритмом CART, что означает, что его можно использовать для задач классификации и регрессии. Он формирует основу для всех продвинутых древовидных моделей. Следовательно, понимание дерева решений жизненно важно для любого энтузиаста DS/ML. Итак, попробуем разобраться.

Как следует из названия, он следует древовидному подходу, который принимает решения для данной проблемы. Цель модели — получить чистые узлы и решения, сформированные по пути.

Существует 2 типа деревьев решений, основанных на типе данных целевой переменной.

  1. Дерево решений категориальных переменных
  2. Дерево решений с непрерывными переменными

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

а) Корневой узел: где функции данных входят в дерево

б) Узел принятия решения: где принимается решение о разделении узла.

c) Конечный узел: где останавливается разделение на другие подузлы.

г) Обрезка: когда мы удаляем подузлы дерева.

Теперь давайте посмотрим, как работает дерево решений.

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

Они есть

  1. ID3 — подход «сверху вниз» при построении дерева.

2. C4.5- Расширенная версия ID3

3. CART-Дерево классификации и регрессии

4. Автоматическое обнаружение взаимодействий CHAID-хи-квадрат. Выполняет многоуровневое разбиение при вычислении деревьев классификации.

5. MARS-многомерные адаптивные регрессионные сплайны

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

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

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

Алгоритм ID3 использовал как энтропию, так и прирост информации для построения модели.

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

Он рассчитывается путем вычитания суммы квадратов вероятностей каждого класса из одного

d) Коэффициент усиления: информация об усилении/расщеплении информации

Поскольку прирост информации смещен в сторону атрибутов с большим количеством различных значений.

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

e) Уменьшение дисперсии: как следует из названия, этот алгоритм использует формулу для выбора разделения. Разделение с более низкой дисперсией выбирается для разделения населения.

f) Хи-квадрат: находит статистическую значимость между разницей между подузлами и родительским узлом.

Он работает с категориальной целевой переменной «Успех» или «Неудача». Он может выполнять два или более шпагата. Чем выше значение хи-квадрата, тем выше статистическая значимость различий между подузлом и родительским узлом.

Распространенной проблемой дерева решений является переоснащение.

Есть несколько способов решить эту проблему.

  1. Обрезка: процесс обрезки дерева называется обрезкой.

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

2. Случайный лес: метод ансамбля, который объединяет несколько деревьев для повышения эффективности прогнозирования. Он работает по методу мешков для создания нескольких деревьев, в которых генерируются несколько обучающих наборов.

Построение классификатора дерева решений в Scikit-learn

Импорт необходимых библиотек

# Load libraries
import pandas as pd
from sklearn.tree import DecisionTreeClassifier # Import Decision Tree Classifier
from sklearn.model_selection import train_test_split # Import train_test_split function
from sklearn import metrics #Import scikit-learn metrics module for accuracy calculation

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

# Create Decision Tree classifer object
clf = DecisionTreeClassifier()

# Train Decision Tree Classifer
clf = clf.fit(X_train,y_train)

#Predict the response for test dataset
y_pred = clf.predict(X_test)

Оценка модели

# Model Accuracy, how often is the classifier correct?
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Оптимизация производительности дерева решений

# Create Decision Tree classifer object
clf = DecisionTreeClassifier(criterion="entropy", max_depth=3)

# Train Decision Tree Classifer
clf = clf.fit(X_train,y_train)

#Predict the response for test dataset
y_pred = clf.predict(X_test)

# Model Accuracy, how often is the classifier correct?
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Как и все алгоритмы, дерево решений имеет свои плюсы и минусы.

Плюсы

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

Минусы

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

Заключение

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

Что ж, это все, что касается этой статьи, надеюсь, вам, ребята, понравилось ее читать.