Объясняется примерами и простой математикой!

Обзор

• Как мы принимаем решения?

• Определение дерева решений

• Как это работает?

• Как построить эффективное дерево решений?

Прежде чем мы начнем, я предполагаю, что вы понимаете концепцию регрессии и классификации хотя бы на высоком уровне. Если нет, то вот краткое изложение:

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

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

Как мы принимаем решения?

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

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

Вот более сложный пример:

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

Жаргонное время

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

Корневой узел: вся выборка или совокупность данных.

Разделение: процесс разделения узла на два или более подузлов.

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

Конечный / конечный узел: узлы без подузлов (без дальнейшего разделения). У них есть стрелки, указывающие на них, но нет стрелок, указывающих от них.

Родительский / дочерний узел: узел, разделенный на подузлы, называется родительским узлом подузлов, тогда как подузлы являются потомками родительского узла.

Поддерево / Ветвь: Подраздел дерева.

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

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

Пример набора данных

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

Пошаговое руководство

1. Весь набор данных пациента передается в корневой узел.

2. Вопрос о пациенте задается, и набор данных разбивается на части в зависимости от того, является ли ответ верным или ложным.

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

4. Процесс продолжается до тех пор, пока не перестанут быть разделены пациенты или пока не будет выполнен критерий остановки.

Ключ к построению эффективного дерева

Чтобы построить эффективное дерево, нужно ответить на 3 важных вопроса:

В. Какие вопросы мы можем задать?

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

Возможные вопросы:

• Возраст человека ›60 лет?

• Возраст человека ›30 лет?

• Есть ли у человека затрудненное дыхание?

• Есть ли у человека боль в груди?

В. Какие вопросы мы должны задать?

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

Что значит уменьшить неопределенность? Чтобы понять это, давайте рассмотрим следующие 2 примера на листовых узлах нашего дерева решений:

С левой стороны каждый листовой узел содержит смесь людей с Covid-19 и без него, то есть нечистых. Если бы мы классифицировали людей в левом листовом узле как положительные, вероятность того, что они будут классифицированы правильно, составит только 50%, поскольку он содержит только 25/50 ковид-положительных частные лица.

Справа каждый листовой узел дерева решений полностью однороден (50/50 covid-позитивный и 48/48 covid-негативный), то есть чистый. Если бы мы классифицировали людей в левом листовом узле как положительные, вероятность того, что они будут классифицированы правильно, составит 100%, поскольку он содержит только covid-позитивных людей.

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

В. Как количественно определить неопределенность / примесь в узле?

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

  1. Примесь Джини - определяет количество примесей в узле (чем меньше, тем лучше)
  2. Получение информации - количественно определяет, насколько вопрос расщепляет метки в узле / снижает неопределенность (чем выше, тем лучше)

Джини примеси

Формула: 1 - Вероятность («Положительный результат») ^ 2 - Вероятность («Отрицательный результат») ^ 2

Применив формулу к нашему примеру, если наш первый вопрос был «Боль в груди», мы получим следующий результат:

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

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

Формула: исходная примесь Джини - сомнительная средневзвешенная примесь Джини

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

В. Когда следует задать вопрос?

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

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

Для этого мы просто вычисляем общее количество примесей Джини для каждого вопроса кандидата и выбираем вопрос с наименьшей примесью Джини:

Когда разделить узел или сделать его листовым?

Для этого выполняем следующие действия:

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

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

В. Как вы принимаете решение на листовом узле?

На этом все! Надеюсь, вам понравилось это простое объяснение того, как работает дерево решений :)

об авторе

Ранон - специалист по обработке данных в NCS, который использует передовую аналитику данных и машинное обучение для решения проблем. Он на добровольных началах преподает концепции анализа данных и по совместительству учится в магистратуре ML @ Georgia Tech.

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

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