В этой статье мы поймем дерево решений, ответив на следующий вопрос:

  • Что такое дерево решений?
  • Какова основная концепция дерева решений?
  • Какие термины используются в Дереве решений в случае классификации?
  • Какие термины используются в дереве решений в случае регрессии?
  • Каковы преимущества и недостатки дерева решений?
  • Как реализовать дерево решений с помощью Scikit-learn?

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

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

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

Что означает дерево в мире информатики?

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

Какова основная концепция дерева решений?

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

Эта таблица имеет 1 зависимую характеристику, которая заключается в том, будет ли ребенок играть на улице или не обозначается словом «Играет». И 3 независимых функции: погода, время и родители дома. Если мы попытаемся написать программу для оценки результата, играет ли ребенок на улице или нет, просто наблюдая за таблицей. Тогда программа будет выглядеть так:

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

Мы можем заметить, что дерево решений — это просто вложенный оператор if-else, описанный в формате дерева.

Когда мы понимаем основную концепцию дерева решений, мы наткнулись на новый вопрос: как мы можем расположить порядок независимых функций, чтобы создать дерево решений, подобное приведенному выше примеру, откуда мы знаем, что мы должны принять Сначала функция «Погода», затем «Время», а затем функции «Родители дома». Чтобы ответить на этот вопрос, мы должны сначала понять некоторые статистические термины, которые мы обсудим ниже.

Какие термины используются в дереве решений в случае классификации?

Энтропия:

Энтропия — это мера случайности данных. Другими словами, это дает примесь, присутствующую в наборе данных. Это помогает рассчитать прирост информации в дереве решений.

Примесь Джини:

Примесь Джини также используется для измерения случайности, как и энтропия. Формула примеси Джини:

Единственное различие состоит в том, что энтропия находится в диапазоне от 0 до 1, а примесь Джини — в диапазоне от 0 до 0,5.

Получение информации:

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

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

Что происходит в дереве решений в случае проблем с классификацией?

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

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

Ошибка:

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

Уменьшение отклонений:

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

Что происходит в дереве решений в случае проблем с регрессией?

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

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

Каковы преимущества и недостатки дерева решений?

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

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

Недостатки:

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

Как устранить недостатки дерева решений?

  1. Для проблемы переобучения мы можем ограничить высоту, узлы или листья дерева решений путем гипернастройки модели. Этот процесс называется обрезкой дерева.
  2. Чтобы справиться с нестабильным деревом решений, мы можем использовать метод ансамбля, такой как самый известный «случайный лес».

Как реализовать дерево решений с помощью Scikit-learn?

Кодовая часть дерева решений очень проста, поскольку мы используем пакет scikit-learn, нам просто нужно импортировать из него модуль дерева решений.

Сначала мы импортируем необходимые модули из python.

В этом примере мы используем набор данных из GitHub о качестве вина.

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

Теперь просто обучите модель.

Оценка точности:

Построение графика:

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



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