В первой части мини-серии #LetsLearnML мы рассмотрим алгоритм дерева решений и поймем его применение в ключевых случаях использования в бизнесе.

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

Некоторые из полезных ключевых терминов, которые нужно знать о деревьях решений, объясняются ниже:

  • Корневой узел: представляет всю совокупность или выборку. Этот узел будет далее разделен на два или более однородных набора.
  • Конечный узел. Узел, который нельзя разделить дальше, называется конечным узлом.
  • Узел принятия решения. Когда подузел разделяется на дополнительные подузлы, он называется узлом принятия решения.
  • Ветвь. Подраздел всего дерева называется ветвью или поддеревом.
  • Родительский/дочерний узел. Узел, разделенный на подузлы, называется родительским узлом подузлов, тогда как подузлы являются дочерними по отношению к родительскому узлу.
  • Разделение: процесс разделения узла на два или более подузлов.
  • Обрезка. Это процесс выборочного удаления ветвей дерева. Цель состоит в том, чтобы удалить лишние ветви, улучшить общую структуру дерева и направить новый здоровый рост.
  • Примеси. В дереве решений примеси — это мера однородности меток в узле. Реализация по умолчанию предоставляет две меры примеси для классификации, т. е. примесь Джини и энтропию, и одну меру примеси для регрессии. Алгоритм выбирает раздел, максимизирующий чистоту разделения и, таким образом, минимизирующий примесь.

Как работают деревья решений в контексте машинного обучения?

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

Этот процесс повторяется до тех пор, пока не будет достигнут критерий остановки, такой как максимальная глубина дерева или минимальное количество точек данных в листовом узле.

Преимущества деревьев решений

  1. Легко интерпретировать
  2. Обрабатывает как категориальные, так и числовые данные
  3. Возможность захвата сложных взаимодействий между переменными
  4. Устойчивость к шумным и отсутствующим данным
  5. Быстрое и эффективное вычисление
  6. Легко комбинируется или сочетается с другими алгоритмами

Недостатки деревьев решений

  1. Восприимчив к переоснащению
  2. Модель чувствительна к небольшим изменениям в наборе данных
  3. Склонен к предубеждениям в отношении многоуровневых функций
  4. Может плохо обрабатывать непрерывные переменные
  5. Точность алгоритма может не подходить для некоторых случаев использования

Пример кода

from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report,
confusion_matrix

iris = datasets.load_iris()

X= iris.data
y= iris.target

## Scale the data
sc = StandardScaler
sc.fit(X,y)

## Split data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2,
                                    random_state=123)

clf = DecisionTreeClassifier()
clf.fit(X_train,y_train)

### Evaluation of metrics on training data
def training_metrics(X_train, y_train):
      acc_train = accuracy_score(y_train, clf.predict(X_train))
      cls_train = classification_report(y_train, clf.predict(X_train))
      cm_train = confusion_matrix(y_train, clf.predict(X_train))
      
    return acc_train, cls_train, cm_train


## Evaluation of metrics on test data
def test_metrics(X_test,y_test):
      acc_test = accuracy_score(y_test, clf.predict(X_test))
      cls_test = classification_report(y_test, clf.predict(X_test))
      cm_test = confusion_matrix(y_test, clf.predict(X_test))
      
    return acc_test, cls_test, cm_test

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

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

Заключение

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

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

Если вам понравилось читать мой контент:

  1. Похлопайте этой статье и подпишитесь на Азиза Будимана, чтобы получать последние статьи прямо на вашу электронную почту.
  2. Свяжитесь со мной в LinkedIn и Github, чтобы узнать о моем профессиональном опыте и опыте.