我有428个观察值和51个变量。我想计算决策树,但我想微调参数。首先,我使用训练数据,然后选择最佳的最小分裂和最大深度。
为此,我为最小分割和最大深度做了一个循环。
for (i in 1:10){
for (j in 1:10){
predictions_summary_dt=data.frame()
mytree<- rpart(sales~.,data=data.training[,-c(4)],method="anova", control = list(minisplit= j, maxdepth=i))
prediction<-predict(mytree,newdata=data.validation[,-c(1,4)])
predictions_summary.dt=rbind(predictions_summary.dt,data.frame(obs=data.validation[,1],pred=prediction))
R2.mytree<-(cor(predictions_summary.dt$sales,predictions_summary.dt$pred))^2
R2.mytree
MSE.mytree<-mse(predictions_summary.dt$sales,predictions_summary.dt$pred)
MSE.mytree
MAE.mytree <- mean(abs(predictions_summary.dt$pred-predictions_summary.dt$sales))
MAE.mytree
MAPE.mytree<-mape(predictions_summary.dt$sales, predictions_summary.dt$pred)
MAPE.mytree
results_trees=rbind(results_trees,data.frame(R2.mytree,MSE.mytree,MAE.mytree,MAPE.mytree,i,j))
}
}
results_trees```
如何选择最佳的最小分割和最大深度?有什么选择的方法吗?最好的最小分割是谁的MSE较低?还是xerror较低的那个?
谢谢