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

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

Части дерева решений

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

Узел принятия решения: узел, который разбивает на части на основе атрибутов.

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

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

Как работает алгоритм?

- На основе метода примеси Джини получить лучший атрибут.

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

- Повторите описанный выше процесс для дочерних узлов, пока не будет выполнено одно из следующих условий.

1. Большинство записей набора данных принадлежит атрибуту.

2. Больше не осталось атрибутов для классификации.

Пример:

Рассмотрим приведенный ниже случай, когда набор данных состоит из 331 истории болезни пациентов с симптомами Covid в качестве атрибутов. Мы стремимся классифицировать пациента как положительный или отрицательный на Covid.

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

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

Как мы видим, ни один из листовых узлов не является на 100% «Да для болезни коронавируса» и они не являются на 100% «Нет для болезни короны», и поэтому все они считаются нечистыми. Чтобы определить лучший атрибут, нам нужно выделить атрибут на основе минимальной примеси. Есть много способов измерить примесь, но в приведенном выше случае мы можем использовать метод разделения Джини.

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

Для левого узла примесь Джини.

=1-(a)*2-(b)*2

=1-(105/(105+139))*2 -(139/(139+105))*2

Где

a = вероятность типа «Да» у пациентов с коронавирусом

b = вероятность того, что у пациентов с коронавирусом типа «Нет»

Примесь Джини левого узла = 0,395

Примесь Джини правого узла = 0,33

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

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

= (144/(144+139))*0.395 + (139/(139+144))*0.336

= 0.364

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

Примесь Джини от кашля = 0,364

Примесь Джини для чихания = 0,360

Примесь Джини для лихорадки = 0,381

Примесь Джини для Bodyache = 0,374

Итак, мы приходим к выводу, что узел решения имеет атрибут «Чихание».

Теперь мы сосредоточимся на поиске атрибута, который лучше всего подходит для левого узла узла Sneeze Decision. Как мы видим, в левом узле Дерева чихания находится (37 + 127) = 164 пациента. Теперь нам нужно рассчитать примесь Джини для оставшихся атрибутов кашель, лихорадка, боль в теле, которые классифицируют пациентов как covid (37 пациентов) и non covid (127 пациентов).

Примесь Джини от кашля = 0,3

Примесь Джини от лихорадки = 0,290

Примесь Джини Bodyache = 0,310

Таким образом, мы заключаем, что левый листовой узел узла Sneeze будет установлен на Атрибут Fever.

Теперь мы сосредоточимся на поиске атрибута, который лучше всего подходит для левого узла узла Fever Decision. Как мы видим, в левом узле Дерева чихания находится (24 + 25) = 49 пациентов. Теперь нам нужно рассчитать примесь Джини для оставшихся атрибутов кашля, лихорадки, боли в теле, которые классифицируют пациентов как covid (24 пациента) и non covid (25 пациентов).

Примесь Джини от кашля = 0,20

Примесь Джини Bodyache = 0,29

Таким образом, мы заключаем, что левый листовой узел узла Fever будет установлен на атрибут Cough.

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

Примесь Джини Bodyache = 0,29

Примесь Джини левого узла кашля = 0,12

Примесь Джини правого узла кашля = 0,19

Это весь процесс построения дерева решений с нуля на основе примеси.

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

Ссылки на статью:

Https://www.youtube.com/watch?v=7VeUPuFGJHk

Https://www.datacamp.com/community/tutorials/decision-tree-classification-python