决策树,控制=列表(最小分割,最大深度)

时间:2020-02-17 12:26:45

标签: decision-tree

我有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较低的那个?

谢谢

0 个答案:

没有答案