Деревья регрессии

Вступление

Деревья двоичных решений - это supervised техника машинного обучения, в которой атрибуты подвергаются серии бинарных (да / нет) решений. Каждое решение приводит к одной из двух возможностей. Каждое решение ведет к другому решению или к предсказанию. Пример дрессированного дерева поможет закрепить идею. Вы узнаете, как работает обучение, после того, как поймете его результат. Decision Trees используются как для Regression, так и Classification задач машинного обучения. Термин Classification And Regression Tree (CART) анализ - это общий термин, используемый для обозначения обоих процессов.

Пример набора данных о качестве вина

Прочитать набор данных

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1599 entries, 0 to 1598
Data columns (total 12 columns):
 #   Column                Non-Null Count  Dtype  
---  ------                --------------  -----  
 0   fixed acidity         1599 non-null   float64
 1   volatile acidity      1599 non-null   float64
 2   citric acid           1599 non-null   float64
 3   residual sugar        1599 non-null   float64
 4   chlorides             1599 non-null   float64
 5   free sulfur dioxide   1599 non-null   float64
 6   total sulfur dioxide  1599 non-null   float64
 7   density               1599 non-null   float64
 8   pH                    1599 non-null   float64
 9   sulphates             1599 non-null   float64
 10  alcohol               1599 non-null   float64
 11  quality               1599 non-null   int64  
dtypes: float64(11), int64(1)
memory usage: 150.0 KB

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

Обучите модель

Визуализируйте наше дерево

На приведенном выше рисунке показана серия решений, полученных в результате обучения работе с данными о качестве вина. Блок-схема обученного дерева показывает ряд блоков, которые на языке дерева решений называются узлами. Есть два типа узлов: узлы могут либо pose a yes/no question of the data, либо они могут быть terminal узлами, которые assign a prediction к примерам, которые в них попадают. Terminal узлы часто упоминаются как leaf nodes. Конечные узлы - это узлы в нижней части рисунка, которые не имеют ветвей или еще decision nodes под ними.

Как двоичное дерево решений генерирует прогнозы?

Как определить точку разделения

Использование уменьшения дисперсии (среднеквадратичная ошибка)

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

  • Согласно приведенному выше древовидному графику, столбец № (11) имеет наиболее значительное влияние на нашу цель. Почему - - ›Will be illustrated below
  • Значение (10,525) в корневом узле приведенного выше графика представляет собой значение, при котором достигается минимальное значение Mean Squared Error "MSE" следующим образом:
  1. Сортируйте элементы наших функций снисходительно.
  2. Получите среднее значение между первыми двумя точками в нашей функции и определите его как наш порог.
  3. Получите соответствующие средние выходные значения: одно для целевых значений перед порогом, а другое - для целевых значений рядом с порогом. Эти средние значения составляют 2-predicted values.
  4. 4. Рассчитайте Mean Square Error со ссылкой на каждое среднее (mean value).
  5. Повторите пункты 2–4, но с получением нового порогового среднего значения между 2-й и 3-ей характеристическими точками и так далее, пока не достигнете последних 2-х точек в нашей функции.
  6. Пороговое значение в нашей функции, которое соответствует Least MSE для нашей цели.
  • Итак, разделив набор данных вокруг значения split, как показано ниже, чтобы получить наборы данных d1 и d2:
  1. Обратите внимание, что max значение [X10] 'алкоголь' в d1 равно 10.50 и min значение 'алкоголь' в d2 равно 10.55
  2. Вычисление среднего из двух приведенных выше значений приведет к: 10.525, который представляет нашу точку разделения root узла.
  • Повторите эти действия для остальных нетерминальных узлов, пока не достигнете листового узла.

Как определить наиболее важную особенность (атрибут), которую нужно разделить?

  • Алгоритм повторяет описанные выше шаги для каждой функции.
  • Получите наилучшие Mean Square Error и split баллов за каждую функцию.
  • Тогда наиболее значимая функция будет иметь "наименьшую MSE".

Определение точки разделения графически.

Теперь давайте разделим набор данных по точке разделения

Определение точки разделения графически.

Совет. Если модель идеально подходит для обучающих данных, это, вероятно, означает, что она переобучена и not будет хорошо работать с новыми данными

Как предотвратить переоснащение

  • Самый простой способ - разделить наблюдения только тогда, когда данных для разделения достаточно.
  • Обычно минимальный нет. наблюдения, чтобы разрешить раскол - 20.