Дерево решений — это контролируемый алгоритм классификации и регрессии, также называемый алгоритмом CART, что означает, что его можно использовать для задач классификации и регрессии. Он формирует основу для всех продвинутых древовидных моделей. Следовательно, понимание дерева решений жизненно важно для любого энтузиаста DS/ML. Итак, попробуем разобраться.
Как следует из названия, он следует древовидному подходу, который принимает решения для данной проблемы. Цель модели — получить чистые узлы и решения, сформированные по пути.
Существует 2 типа деревьев решений, основанных на типе данных целевой переменной.
- Дерево решений категориальных переменных
- Дерево решений с непрерывными переменными
Прежде чем мы углубимся, давайте разберемся с некоторыми терминами.
а) Корневой узел: где функции данных входят в дерево
б) Узел принятия решения: где принимается решение о разделении узла.
c) Конечный узел: где останавливается разделение на другие подузлы.
г) Обрезка: когда мы удаляем подузлы дерева.
Теперь давайте посмотрим, как работает дерево решений.
Точность модели зависит от выбора переменных и решения о разделении. Дерево решений должно сначала решить переменную, а переменные во внутренних узлах и ее разбиение для разбиения, что дает нам лучшие чистые узлы в конце. Выбор осуществляется с использованием одного из приведенных ниже алгоритмов в модели дерева решений.
Они есть
- ID3 — подход «сверху вниз» при построении дерева.
2. C4.5- Расширенная версия ID3
3. CART-Дерево классификации и регрессии
4. Автоматическое обнаружение взаимодействий CHAID-хи-квадрат. Выполняет многоуровневое разбиение при вычислении деревьев классификации.
5. MARS-многомерные адаптивные регрессионные сплайны
Есть также несколько критериев (метрик), которые являются частью процесса выбора и разделения переменных.
а) Энтропия: это мера случайности данных в узле. Чем выше энтропия, тем ниже производительность модели. Следовательно, нам нужна переменная с более низкой энтропией, чтобы двигаться дальше при построении дерева
б) Прирост информации: Прирост информации связан с энтропией при принятии решения. Это дает, сколько информации узел имеет о переменной. Следовательно, нам нужно более высокое значение получения информации от узла.
Алгоритм ID3 использовал как энтропию, так и прирост информации для построения модели.
c) Индекс Джини: это функция стоимости для оценки качества функций для разбиений в дереве решений. Более высокое значение индекса Джини означает более высокое неравенство, более высокую неоднородность. Для разделения выбирается признак с более низким индексом Джини.
Он рассчитывается путем вычитания суммы квадратов вероятностей каждого класса из одного
d) Коэффициент усиления: информация об усилении/расщеплении информации
Поскольку прирост информации смещен в сторону атрибутов с большим количеством различных значений.
Gain Ratio решает эту проблему, так как учитывает прирост информации вместе с информацией о разделении, тем самым уменьшая погрешность.
e) Уменьшение дисперсии: как следует из названия, этот алгоритм использует формулу для выбора разделения. Разделение с более низкой дисперсией выбирается для разделения населения.
f) Хи-квадрат: находит статистическую значимость между разницей между подузлами и родительским узлом.
Он работает с категориальной целевой переменной «Успех» или «Неудача». Он может выполнять два или более шпагата. Чем выше значение хи-квадрата, тем выше статистическая значимость различий между подузлом и родительским узлом.
Распространенной проблемой дерева решений является переоснащение.
Есть несколько способов решить эту проблему.
- Обрезка: процесс обрезки дерева называется обрезкой.
Поскольку процесс разделения приводит к большему дереву, пока не будут достигнуты критерии разделения. Большие деревья обычно имеют низкую точность, поскольку они, вероятно, будут соответствовать невидимым данным.
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, а также оптимизация производительности дерева решений с помощью настройки параметров.
Что ж, это все, что касается этой статьи, надеюсь, вам, ребята, понравилось ее читать.