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

Ссылаясь на приведенное выше изображение Рисунок 1.0, Возраст — это родительский узел, Ешь пиццу и Упражнения — это узлы-ветви. , Подходит и Не подходит — конечные узлы. Это говорит о том, что если вам меньше 30 лет и вы едите пиццу, вы не в форме. Такая цепочка if и else образует дерево решений.

Дерево решений в машинном обучении

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

Однородное ведро – это ведро, состоящее из одинаковых ярлыков.

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

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

Регуляризация означает контроль роста дерева при его обучении.

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

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

Этапы построения дерева решений:

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

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

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

а) Энтропия:

Энтропия есть отношение между вероятностью и примесью. По оси X у вас есть вероятность, а по оси Y у вас есть примесь. Вы можете видеть, что при вероятности = 0,5 у вас максимальная неопределенность.

На изображении выше показана формула энтропии. log2 pi имеет следующие свойства:

  • log2 (пи = 1) = 0
  • log2 (пи = 0,5) = 1
  • log2(pi=0) = бесконечность,

Следовательно, когда pi = 0, кривая энтропии будет двигаться к бесконечности, но диапазон энтропии находится в диапазоне от 0 до 1, поэтому мы умножаем pi на log2 (pi), чтобы кривая вместо того, чтобы идти к бесконечности, заканчивалась на 0.

Энтропия утверждает:

  • Всякий раз, когда вероятность события, т. е. P(X=1), равна 0,5, существует максимальная неопределенность.
  • Когда вероятность события равна 0 или 1, неопределенность равна 0.

Причина отрицательного знака в формуле заключается в том, что log2(pi) возвращает отрицательное число.

Энтропия по отношению к дереву решений:

  • Дерево решений находит независимый атрибут, а внутри атрибута оно также находит пороговое значение, так что когда алгоритм применяет функцию к данному столбцу, при заданном пороге он разбивает данные на два узла.
  • При создании подветвей общая энтропия подветвей должна быть меньше энтропии родительского узла. Чем больше падение, тем больше полученной информации. Следовательно, для разделения выбирается такой столбец, который дает максимальное падение энтропии.
    Прирост информации = Энтропия Предыдущий узел-Энтропия Текущий узел

б) Джини

  • Не будет большой разницы в выходе, если выбрать любой из двух: энтропию и Джини.

На рисунке выше показана формула индекса Джини.

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

  • H(X): это энтропия для корневого узла и каждого разделенного узла.
  • |Xv| : Количество выборок в узле ответвления
  • |Х| : Общее количество образцов
  • H(Xv): энтропия узла ответвления
  • G(X,A): прирост информации

H(F1) = -[(9/14)*log2(9/14) + (5/14)*log2(5/14)]=0,91

H(F2)=-[(6/8)*log2(6/8) + (2/8)*log2(2/8)]=0,81

H(F3) = -[(3/6)*log2(3/6) + (3/6)*log2(3/6)]=.1

Прибыль = 0,91 - [[(8/14)*0,81]-[(6/14)*0,1]] = 0,0049

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

Ключевой вывод:

  • Установка энтропии в качестве критерия замедлит вычисление из-за операции журнала
  • С сплиттером, установленным как «случайный», используйте гиперпараметры, такие как: max_features, random_state. При этом есть вероятность использования неважного столбца, который не дает много информации. Что приводит к более глубокому и менее точному дереву. Но это быстро, менее склонно к переоснащению из-за случайности, и вы не рассчитываете лучшее разделение перед каждым разделением.
  • Когда у вас мало функций, вы используете «лучший» в качестве разделителя
  • Если max_depth установлен по умолчанию, конечный узел будет иметь только одну метку, если вы выберете значение по умолчанию для min_samples_leaf
  • Если вы укажете min_samples_split, узел будет расширяться до тех пор, пока все листья не будут содержать меньше минимального количества выборок по сравнению с max_depth. Алгоритм выберет гиперпараметр, который дает максимальную глубину по сравнению с другими.
  • Чем глубже вы позволяете своему дереву расти, тем сложнее становится модель, потому что у вас будет больше разбиений и она собирает больше информации об обучающих данных. Из-за этого происходит оверфит
  • Если ваша модель подходит, уменьшите max_depth
  • Пусть ваша модель определяет max_depth по умолчанию, основываясь на оценке поезда и наборе проверки, увеличивая или уменьшая max_depth.
  • Идеальное значение для min_samples_split: от 1 до 40. Он контролирует переоснащение. Более высокое значение не позволяет модели изучать отношения.
  • В случае несбалансированного класса определите гиперпараметр min_weight_fraction_leaf. Придайте больший вес несбалансированному классу.

Что следует отметить

Сложность дерева измеряется с помощью:

  • Количество узлов
  • Количество листьев
  • Глубина
  • Количество атрибутов

Критерии остановки:

  • Максимальная глубина
  • min_samples_split
  • min_samples_leaf

Я бы посоветовал вам прочитать о методах обрезки.

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