- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
AIM:我想了解为什么 RMSE
在较小的树上会增加。
上下文:我正在学习rpart
算法。我有一些数据,我将其分为三个部分(训练、验证、测试)。我正在使用this Kaggle dataset.
我适合模型:
homes_model <- rpart(formula = SalePrice ~ .,
data = homes_train,
method = "anova")
使用这个基础树:
然后,我计算了测试数据的 RMSE:
pred_base <- predict(object=homes_model,
newdata = homes_test)
library(Metrics)
rmse_base <- rmse(actual=homes_test$SalePrice, #Actual values
predicted = pred_base )
第一棵树的 rmse_base
是:46894
。
然后,我查看了 cptable
,根据最低的 xerror+xstd
规则选择最佳树。
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
我选择了有 7 个 split 的树:
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)
我绘制了它:
然后我在测试数据的这个较小的树上再次计算了 RMSE
:
#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
它从 46894
上升到 49964
。为什么?较小的树不应该更好地适应看不见的数据吗?
最佳答案
树足够大以表示数据的变化,但又不能大到过度拟合,两者之间始终存在平衡。较大的树有时会产生更好的结果,因为它们对数据进行更精细的划分,因此代表了细微差别。较小的树有时会产生更好的结果,因为过度拟合的问题较少。但如果最小的树总是最好的,为什么不只使用一个节点呢?仅使用根节点就会使用平均值来估计值 - 不太可能真正准确。必须平衡两种相互冲突的力量才能获得最佳结果。
关于r - 为什么较小的树上的 RMSE 值会增加 (RPART),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53416637/
我正在参加 Coursera 实用机器学习类(class),该类(class)要求使用此 dataset 构建预测模型。根据感兴趣的结果(此处标记为 y,但实际上是 数据集中的 classe 变量):
我正在使用 prp来自 rpart.plot 的函数用于绘制树的包。对于像状态这样的分类数据,它提供了一个非常长的变量列表,并且降低了可读性。如果超过一定长度,有没有办法将文本换行到两行或更多行? 最
我目前正在使用 rpart用于将回归树拟合到观测值相对较少的数据和采用两个可能值的数千个分类预测变量的数据包。 通过在较小的数据上测试包,我知道在这种情况下,我是否将回归量声明为分类变量(即因子)或保
我有以下问题。我编写了一个函数,在该函数中使用 rpart 包一次性计算分类树。 在函数内部,我初始化了树的权重。但是,我收到一个错误,即 rpart 函数找不到权重变量(这是确切的错误消息: Err
ID Ethnicity MaritalStatus EmploymentStatus type 1 10 5 3 1 3
RPART 对连续变量、序数变量和分类变量使用不同的分割过程。有没有办法“告知”RPART变量类型?为了便于说明,我有一个具有整数值 (1,..,5) 的序数变量。现在,我需要将其强制转换为字符,这样
我正在努力解决 Rpart 包中的 NA 功能。我得到了以下数据框(下面的代码) Outcome VarA VarB 1 1 1 0 2 1 1 1
我正在使用 rpart 制作决策树。例如: fit <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis) 如何从文本文件中读取公式部分并以
我想向我的树添加一些信息。例如,假设我有一个这样的数据库: library(rpart) library(rpart.plot) set.seed(1) mydb= node], ] } parent
> fit rpart.plot(fit, type = 4, extra = 101) 我尝试了选项(scipen=10),但没有成功。如何删除科学记数法? 最佳答案 对digits参数使用负值。
我在 R 中使用 rpart 时遇到了一些标签问题。 这是我的情况。 我正在处理具有分类变量的数据集,这是我的数据的摘录 head(Dataset) Entity IL CP TD Budge
我一生都无法弄清楚如何计算 rpart 上的混淆矩阵。 这是我所做的: set.seed(12345) UBANK_rand <- UBank[order(runif(1000)), ] UBank_
我有一个事件率低于 3% 的数据集(即大约有 700 条 1 类记录和 27000 条 0 类记录)。 ID V1 V2 V3 V5 V6 Target S
iris = 2.5 & Petal.Width = 2.5 & Petal.Width >= 1.8 和 options(width=1000) rpart.predict(iris.rpart,
我想绘制通过递归二元拆分构造的二维协变量空间的分区。更准确地说,我想编写一个函数来复制下图(取自 Elements of Statistical Learning,第 306 页): 上面显示的是二维
假设我用 RPART 建立一个玩具树模型,我怎样才能得到树的深度? library(rpart) library(partykit) fit=rpart(factor(am)~.,mtcars,con
我有一个包含 14 个特征的数据集,其中很少有如下特征,其中性别和婚姻状况是分类变量。 height,sex,maritalStatus,age,edu,homeType SEX 1
我观察到,仅对于 rpart 包(用于决策树模型),当我增加数据中的因子级别数时,该包会急剧变慢。我和其他包对比过,只针对rpart,好像是这样。下面是在我的数据上尝试各种算法的图表。 X 轴显示使用
在rpart.plot函数中(从rpart.plot包扩展到rpart包),有一个参数box.col,它控制树中节点的颜色。如何设置它为节点着色,以使相同响应的节点着色相同? 我用box.col参数尝
说我有 head(kyphosis) inTrain predict_nodes(kyph_tree, TEST_KYPHOSIS) [1] 5 3 4 3 3 5 5 3 3 3 3 5 5 4
我是一名优秀的程序员,十分优秀!