Знание и понимание вашего алгоритма

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

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

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

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

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

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

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

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

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

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

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

Что делает дерево решений таким мощным?

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

Давайте посмотрим, какие компоненты составляют такое мощное дерево решений.

Поговорим о регрессе. Поскольку есть много статей, в которых представлены свои выводы о части классификации.

Компоненты дерева решений

Процесс построения дерева решений можно разбить на два основных этапа:

  • Создание предиктора пространства из заданных данных в область R, где каждый из них не перекрывается и уникален.
  • Взятие среднего для наблюдений, которые попадают в любой регион R. Любое новое наблюдение, попадающее в конкретный раздел R, имеет предполагаемый ответ, полученный как среднее значение всех обучающих наблюдений в этом разделе.

Отклик - это среднее значение всех точек данных, характеристик или наблюдений в заданном регионе R.

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

Идея здесь состоит в том, чтобы создать прямоугольник области R, куда попадает каждое наблюдение. Цель этого алгоритма - минимизировать некоторую форму критерия ошибки - в нашем случае Остаточная сумма квадратов.

Где,

  • yi = ›актуальный прогноз
  • yhat R = ›среднее значение реакции обучающего наблюдения в R-области.

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

RBS решает эту проблему, начиная с вершины дерева и разделяя дерево на две ветви, в результате чего создается раздел, состоящий из двух пространств. Он выполняет это конкретное разделение наверху дерева несколько раз и выбирает разделение функций, которое минимизирует (текущий) RSS.

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

На изображении выше мы видим, как создается область R и формируется разделение в корневом узле. По-прежнему остается вопрос, как создать раскол?

Создание раскола

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

Есть четыре шага, в которых вы можете сделать сплит.

  1. Создайте все возможные разделения на основе всех возможных значений во всех столбцах.

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

Примечание: если у вас большой набор данных, это потребует больших вычислительных ресурсов.

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

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

В Части 2 мы увидим, как мы можем построить дерево, а затем мы сможем сделать прогноз на основе нашего собственного алгоритма.

Заключение

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