Хотя у нас есть множество регрессоров для прогнозирования / аппроксимации целевых переменных, не всегда более продвинутые из них выигрывают. В этой статье делается попытка показать, что Регрессор дерева решений (DTR) выигрывает у продвинутых, таких как Random Forest и т. Д.

Мы попытались сравнить DTR со следующими регрессорами:

  1. Линейный регрессор
  2. Усиленный регрессор
  3. ADABoost
  4. Случайные леса

Каждый регрессор был опробован индивидуально, чтобы найти его лучший результат, а затем сравнивался. Например, ADA Boost показал себя с максимальной эффективностью с 200 бустами, в то время как Bagging Regressor со 100 сумками.

Введение в набор данных:

Это данные о диабете, которые поставляются с пакетом наборов данных scikit learn. Этот набор данных содержит 442 строки и 11 функций (включая цель):

Загрузите набор данных:

diaData = load_diabetes ()

target = diaData.target

print (‘Shape: {}’. format (df.shape))
Форма: (442, 10)

Регрессионные испытания:

Все регрессоры были запущены с размером теста 20% и случайным начальным числом 123.

(XTrain, XTest, YTrain, YTest) = train_test_split (X, Y, test_size = 20, random_state = 123)

Линейная регрессия:

lreg = LinearRegression ()
lreg.fit (XTrain, YTrain)

print (‘Score: {: .2f}’. format (lreg.score (XTest, YTest)))

Оценка: 0,60

2. Повышение ADA:

Мы попробуем использовать разное количество бустов от 10 до 300, хотя количество бустов менялось с разными прогонами с присущими случайными выборками в модели во время каждого прогона, оценка была одинаковой:

sen = AdaBoostRegressor (n_estimators = 200)
sen.fit (XTrain, YTrain)

Максимальный балл 0,61 достигнут при 260 повышениях.

3. Упакованный регрессор:

У этого регрессора было минимальное улучшение:

breg = BaggingRegressor (n_estimators = 100)
breg.fit (XTrain, YTrain)

Максимальный балл 0,64 достигнут с 60 повышениями:

4. Регрессор случайного леса:

Случайный лес

Максимальный балл 0,61 при 10 лесах.

5. Регрессор дерева решений:

Сравнение регрессоров за один прогон:

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

Вот результат:

Как и ожидалось, DTR был победителем в 99,995% случаев и только в 0,005% случаев Random Forest смог превзойти показатель DTR. И еще одно интересное наблюдение: только DTP и линейные регрессоры были стабильны во всех прогонах.

Почему?

Быстрый и простой ответ: мы позволяем дереву решений расти сколько угодно. Кажется, он настолько разросся, что начал переоснащаться. Это можно рассматривать как потенциальную причину, по которой вы должны увидеть сокращение . Дальнейший анализ будет последующим… :)

Спасибо за чтение.