Основы ИИ

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

mm
Добавьте Unite.AI в избранные источники в Google

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

Дерево решений – это полезный алгоритм машинного обучения, используемый для задач регрессии и классификации. Название “дерево решений” происходит от того, что алгоритм不断 делит набор данных на все меньшие и меньшие части, пока данные не будут разделены на отдельные экземпляры, которые затем классифицируются. Если бы вы визуализировали результаты алгоритма, то способ, которым категории делятся, напоминал бы дерево с множеством листьев.

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

Формат дерева решений

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

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

Алгоритмы для деревьев решений

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

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

Чтобы определить стоимость разделения, используется функция стоимости. Разная функция стоимости используется для задач регрессии и классификации. Цель обеих функций стоимости – определить, какие ветви имеют наиболее схожие значения ответа, или наиболее однородные ветви. Рассмотрите, что вы хотите, чтобы тестовые данные определенного класса следовали определенным путям, и это имеет интуитивный смысл.

Что касается функции стоимости для регрессии для рекурсивного бинарного разделения, алгоритм, используемый для расчета стоимости, следующий:

sum(y – prediction)^2

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

Что касается функции стоимости для классификации, функция следующая:

G = sum(pk * (1 – pk))

Это балл Джини, и это мера эффективности разделения, основанная на количестве экземпляров разных классов в группах, полученных в результате разделения. Другими словами, это количественно определяет, насколько смешанные группы после разделения. Оптимальное разделение – это когда все группы, полученные в результате разделения, состоят только из входных данных из одного класса. Если создано оптимальное разделение, значение “pk” будет либо 0, либо 1, и G будет равен нулю. Вы можете угадать, что худшее разделение – это когда есть 50-50 представление классов в разделении, в случае бинарной классификации. В этом случае значение “pk” будет 0,5, и G также будет 0,5.

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

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

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

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

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

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

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.