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

Средната квадратична грешка (mse) ни казва колко нашите прогнози се отклоняват от първоначалната цел.

В горната фигура Y е действителната стойност, а Y_hat е предвидената стойност.

В алгоритъма на регресионното дърво се опитваме да намалим средната квадратична грешка във всеки възел, а не ентропията. Идеята зад алгоритъма е да се намери точката в независимата променлива чрез итеративен процес на изчисляване на средната квадратична грешка за всички разделяния и избиране на разделянето, което има най-малката стойност на mse и което става най-високото претендент за тази независима променлива. Най-добритепретенденти на всички други независими променливи се сравняват с него и ще бъде избрана променливата, която минимизира mse.

Код на Python за създаване на регресионно дърво

# Import DecisionTreeRegressor from sklearn.tree
from sklearn.tree import DecisionTreeRegressor
dt = DecisionTreeRegressor(max_depth=8,
              min_samples_leaf=0.13,
             random_state=3)
# Fit dt to the training set
dt.fit(X_train, y_train)
# Predict test set labels 
y_pred = dt.predict(X_test)
# Compute mse
mse = MSE(y_test, y_pred)
# Compute rmse
rmse = mse**(1/2)
# Print rmse
print('Regression Tree test set RMSE: {:.2f}'.format(rmse))

Заключение

Алгоритъмът на регресионното дърво е полезен в много области, където е установено, че връзката между променливите е нелинейна. Въпреки това, те са склонни към пренастройване, т.е. моделите пасват на съществуващите данни твърде перфектно, но не успяват да обобщят с нови данни. Един от начините да се предотврати това, по отношение на регресионните дървета, е да се посочи минималният брой записи или редове.