为什么较小的树(RPART)上的RMSE值会增加
AIM:我想了解为什么为什么较小的树(RPART)上的RMSE值会增加,r,machine-learning,regression,cart,rpart,R,Machine Learning,Regression,Cart,Rpart,AIM:我想了解为什么RMSE在较小的树上增加 上下文:我正在学习rpart算法。我有一些数据,我将其分为三个部分(培训、验证、测试)。我正在使用 我符合模型: homes_model <- rpart(formula = SalePrice ~ ., data = homes_train, method = "anova") 我选择了带有7个拆分的树: opt_index <- 7 cp_op
RMSE
在较小的树上增加
上下文:我正在学习rpart
算法。我有一些数据,我将其分为三个部分(培训、验证、测试)。我正在使用
我符合模型:
homes_model <- rpart(formula = SalePrice ~ .,
data = homes_train,
method = "anova")
我选择了带有7个拆分的树:
opt_index <- 7
cp_opt <- homes_model$cptable[opt_index, "CP"]
# Prune the model (to optimized cp value)
homes_model_opt <- prune(tree = homes_model,
cp = cp_opt)
它从
46894
上升到49964
。为什么?较小的树不应该更适合看不见的数据吗?在足够大以表示数据变化的树和不太大而过度适合的树之间,总是有一种平衡。较大的树有时会产生更好的结果,这是因为它们对数据进行了更精细的划分,因此代表了细微差别。小树有时产生更好结果的原因是过度拟合的问题较少。但是如果最小的树总是最好的,为什么不使用一个节点呢?仅使用根节点就可以使用平均值来估计值,这不太可能真正准确。必须平衡这两种相互冲突的力量,才能取得最佳结果 一棵足够大的树可以代表数据的变化,而不是太大以至于过度拟合,两者之间总是有一种平衡。较大的树有时会产生更好的结果,这是因为它们对数据进行了更精细的划分,因此代表了细微差别。小树有时产生更好结果的原因是过度拟合的问题较少。但是如果最小的树总是最好的,为什么不使用一个节点呢?仅使用根节点就可以使用平均值来估计值,这不太可能真正准确。必须平衡这两种相互冲突的力量,才能取得最佳结果 这不是一个编程问题,更适合于这个问题,似乎更像是一个统计问题,而不是一个编码问题,所以您可以尝试将其移动到。这本书从第2章开始,对这类主题进行了一些非常容易理解的讨论。这不是一个编程问题,更适合于这个问题,似乎更像是一个统计问题,而不是一个编码问题,因此您可以尝试将其移至。本书从第2章开始,对这类主题进行了一些非常容易理解的讨论。
CP nsplit rel error xerror xstd
1 0.446 0 1.00 1.00 0.096
2 0.114 1 0.55 0.56 0.054
3 0.078 2 0.44 0.48 0.055
4 0.035 3 0.36 0.41 0.037
5 0.021 4 0.33 0.40 0.046
6 0.018 5 0.31 0.41 0.047
7 0.017 6 0.29 0.39 0.045
8 0.017 7 0.27 0.39 0.045
9 0.013 8 0.25 0.37 0.043
10 0.010 9 0.24 0.35 0.043
opt_index <- 7
cp_opt <- homes_model$cptable[opt_index, "CP"]
# Prune the model (to optimized cp value)
homes_model_opt <- prune(tree = homes_model,
cp = cp_opt)
#Computing predicted values
pred_opt <- predict(object=homes_model_opt,
newdata = homes_test)
#Compute RMSE
rmse_opt <- rmse(actual=homes_test$SalePrice, #Actual values
predicted = pred_opt) #Predicted values