Регресионното дърво е основно дърво на решенията, което се използва за прогнозиране на непрекъснато оценени резултати. В дърветата на решенията за класификация дървото се разделя на базата на ентропия и придобиване на информация. Въпреки това, тъй като предвиждаме непрекъснатите променливи, ентропията не може да не се използва вместо това се използва средна квадратична грешка.
Средната квадратична грешка (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))
Заключение
Алгоритъмът на регресионното дърво е полезен в много области, където е установено, че връзката между променливите е нелинейна. Въпреки това, те са склонни към пренастройване, т.е. моделите пасват на съществуващите данни твърде перфектно, но не успяват да обобщят с нови данни. Един от начините да се предотврати това, по отношение на регресионните дървета, е да се посочи минималният брой записи или редове.