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

  • корневой узел представляет всю совокупность и разделен на два или более однородных набора.
  • Узел решения - это когда подузел разделяется на дополнительные подузлы.
  • Лист - это когда узел не разделяется. Их также называют «терминальными узлами».

Дерево решений накладывает серию вопросов на данные, каждый из которых сужает возможные значения, пока модель не будет хорошо обучена делать прогнозы. Эти вопросы полностью определяются моделью, включая их содержание и порядок, и задаются в форме Верно / Неверно . Вы можете задаться вопросом, как регрессорная модель дерева решений формирует вопросы? Деревья решений классифицируются как модели контролируемого обучения. Модель обучения с учителем - это модель, построенная для прогнозирования с учетом непредвиденных входных данных. Он обучается на основе известного набора входных данных с известными ответами на данные. Дерево решений может делать прогнозы, просматривая все дерево, задавая вопросы «правда / ложь», пока не достигнет листового узла. Окончательный прогноз дается как среднее значение зависимой переменной в этом листовом узле.

Давайте посмотрим на это в действии!

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

После импорта библиотек, импорта набора данных, адресации нулевых значений и удаления всех необходимых столбцов мы готовы создать нашу модель регрессии дерева решений!

Шаг 1. Определите свои зависимые (y) и независимые переменные ( X)

Нашей зависимой переменной будет цены, а нашими независимыми переменными будут оставшиеся столбцы, оставшиеся в наборе данных.

Шаг 2. Разделите набор данных на обучающий набор и тестовый набор.

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

Шаг 3. Обучение модели регрессии дерева решений на обучающем наборе

Из пакета sklearn, содержащего линейные модели, мы импортируем класс DecisionTreeRegressor, создаем его экземпляр и назначаем его переменной. Функция. fit () позволяет нам обучать модель, регулируя веса в соответствии со значениями данных для достижения большей точности. После обучения наша модель готова делать прогнозы, которые вызываются методом .predict ().

Шаг 4. Прогнозирование результатов набора тестов

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

Оценка R² показывает, насколько хорошо наша модель соответствует данным, сравнивая ее со средней линией зависимой переменной. Если оценка ближе к 1, то это означает, что наша модель работает хорошо, а если оценка дальше от 1, то это означает, что наша модель работает не так хорошо.

Мы достигли показателя точности примерно 66%. Если мы сравним это с оценкой, полученной с помощью простой линейной регрессии 50% и множественной линейной регрессии 65%, особых улучшений не было.

Заключение

В этом руководстве мы рассмотрели основы моделей регрессии дерева решений. Мы узнали следующее:

  • Деревья решений состоят из ветвей, узлов и листьев.
  • Дерево решений делает прогноз на основе набора вопросов «верно / неверно», которые модель создает сама.
  • Оценка R2 оценивает точность нашей модели.

Как всегда, есть возможности для улучшения! В следующих статьях я исследую регрессионные модели Support Vector Machines (SVR) и Random Forest на одном и том же наборе данных, чтобы увидеть, какая регрессионная модель дает наилучшие прогнозы цен на жилье.

Спасибо за чтение. Будем очень благодарны за ваш отзыв!