Краткое введение в дерево решений

Краткое введение в деревья решений в науке о данных.

Этот блог является частью серии алгоритмов машинного обучения. Еще одно письмо придет в будущем!

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

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

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

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

«Дерево решений (DT) — это древовидная модель, состоящая из решений и их возможных последствий». (Джеймс., Г., и др., 2013).

Что такое дерево решений?

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

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

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

«Должен ли я сразу перейти к работе после окончания колледжа? или я должен получить высшее образование? или я должен построить свой собственный бизнес, чтобы стать предпринимателем? и т. д. 

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

"Если я не прошел минимальную квалификацию для определенной должности, я должен продолжить свое образование или присоединиться к буткемпам. Если у меня ограниченный бюджет, я должен выбрать участие в буткемпах, так как последние намного дешевле, чем получение более высокой степени. После некоторых размышлений у нас не хватает денег, чтобы присоединиться к буткемпу, поэтому я должен выбрать бесплатный онлайн-курс или учиться на видео на YouTube. Список можно продолжить».

Это работает так же в алгоритмах дерева решений.

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

Надеюсь, эта иллюстрация поможет. Давайте продолжим реализацию алгоритмов дерева решений на Python!

Учебное пособие по Python для построения дерева решений

Сначала разрешите импортировать необходимые модули, которые будут использоваться в этом руководстве.

from sklearn.datasets import load_iris
import pandas as pd 
from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier, plot_tree
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

Во-вторых, давайте разделим данные на функции и настроим таргетинг и выполним разделение обучающих тестов. Мы будем использовать набор данных iris для этого урока.

iris = load_iris()
X = iris.data 
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(
          X, y, test_size = 0.2, random_state=42)

В-третьих, данные были готовы, и мы могли перейти к построению нашей первой модели дерева решений!

dt = DecisionTreeClassifier(random_state=42)
dt.fit(X_train, y_train )

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

accuracy_score(y_test, y_pred)

Оказывается, у нашей первой модели отличная производительность!

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

Бонус: сила интерпретации дерева решений

Еще одна сила, которой обладает дерево решений, — это интерпретируемость дерева решений.

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

plt.figure(figsize=(20,10))
plot_tree(dt, filled=True)
plt.show()

Что не освещается в блоге

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

  1. Слабые стороны дерева принятия решений, низкая прогностическая способность по сравнению с большинством алгоритмов машинного обучения и высокий риск переобучения.
  2. Дерево решений для задач регрессии, тот же тип дерева решений, указанный для задач регрессии.
  3. Настройка гиперпараметров для дерева решений, настройте параметр, который строит алгоритм дерева решений, который может улучшить производительность модели.
  4. Алгоритм случайного леса. Алгоритм машинного обучения, который состоит из большого количества деревьев решений и обычно имеет более высокую прогностическую силу по сравнению с деревом решений (также мой фаворит!).

Дополнительные ресурсы

Хотите узнать больше о дереве решений? вы можете проверить другие источники, которые я разместил ниже:

  1. Блог: https://machinelearningmastery.com/classification-and-regression-trees-for-machine-learning/
  2. Книга:Джеймс Г., Виттен., Даниэла., Хасти., Тревор., Тибширани, Роберт. 2013. Введение в статистическое обучение: приложения в R.
  3. YouTube: https://www.youtube.com/watch?v=UhY5vPfQIrA

Спасибо за ваше чтение!

лайкните этот блог и прокомментируйте, если считаете это письмо полезным.