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

как это связано с деревом решений?

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

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

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

Два вида обрезки:

  1. После обрезки

2. Предварительная обрезка

В этой статье я дам вам некоторые идеи об обрезке постов с использованием альфа-канала сложности стоимости.

Альфа сложности стоимости

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

Этот алгоритм параметризуется значением α(≥0), известным как параметр сложности.

Параметр сложности используется для определения меры стоимости-сложности Rα(T) данного дерева T: Rα(T)=R(T)+α|T|

где |Т| - количество конечных узлов в T, а R (T) традиционно определяется как общий коэффициент ошибочной классификации конечных узлов.

Код

Мы будем использовать набор данных по раку молочной железы из наборов данных коллекции sklearn.

Загрузка набора данных по раку молочной железы

Построение классификатора дерева решений

Вывод:

Классификатор дерева решений(random_state=0)

Визуализация дерева решений через график

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

Возьмем пример корневого узла:

x[7] = седьмой признак

x[7]≤0,049 = на основе этого значения, которое вычисляется с использованием 7-го признака, будет происходить разделение выборок

gini =0,47 значение индекса gini, вычисленное в корневом узле. Для корневого узла это было 0,47.

samples =341 – число задействованных образцов. Изначально количество обучающей выборки равно 341.

values ​​= [129,212]В списке значений указано, сколько образцов в данном узле попадает в каждую категорию. Первый элемент списка показывает количество образцов, принадлежащих к классу 0, второй элемент списка показывает количество образцов, принадлежащих к классу 1,

Расчет пути сложности затрат

Теперь мы сосредоточимся на основном бизнесе, чтобы вычислить вычисление пути сложности стоимости. cost_complexity_pruning_path возвращает список ccp_alphas и примесей после обрезки дерева модели.

Выход:

ccp_alphas: [0. 0,00290184 0,00563319 0,0058132 0,0113231 0,01382488 0,02230415 0,03433417 0,34863814]

примеси: [0. 0,01160738 0,03414015 0,03995335 0,05127645 0,06510133 0,08740548 0,12173965 0,47037779]

Обучение моделей с помощью ccp_alphas

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

Вычисление результатов обучения и тестирования

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

Оптимальной моделью будет та, которая дает наивысший тестовый балл.

Выход:

test_scores [0,8947368421052632, 0,9122807017543859, 0,9210526315789473, 0,9210526315789473, 0,9254385964912281, 0,921052631578947 3, 0,9078947368421053, 0,881578947368421, 0,6359649122807017]

train_scores [1.0, 0.9941348973607038, 0.9824046920821115, 0.9794721407624634, 0.9736070381231672, 0.9648093841642229, 0.9413489736 070382, 0,9325513196480938, 0,6217008797653959]

Визуализация поезда и результата теста

как мы можем наблюдать оптимальную модель; существуют с тестовым результатом 0,93% и значением ccp_alpha 0,01

Обучение модели с выбранным значением ccp_alpha

Выход:

ccp_alpha_max_value_for_max_test_score 0,011323100809131435

Визуализация окончательного обрезанного дерева

Для получения кода вы можете нажать здесь