该rpart
包的plotcp
函数绘制了适合训练数据集的 rpart 树的复杂性参数表。plotcp
使用该函数时,您无需提供任何额外的验证数据集。
Rpart 实现首先在整个数据上拟合一棵完全生长的树D和吨终端节点。在这一步之后,将树修剪为具有最低错误分类损失的最小树。这是它的工作原理:
- 然后将数据拆分为n(默认 = 10)随机选择的折叠:F1至F10
- 然后它使用 10 折交叉验证并拟合每个子树吨1. . .吨米在每个训练折叠Ds.
- 相应的错误分类损失(风险)R米然后通过比较为验证折叠预测的类与实际类来计算每个子树的值;并且每个子树的这个风险值对所有折叠求和。
- 复杂度参数β最终选择在整个数据集上给出最低总风险。
- 然后使用此复杂度参数拟合完整数据,并选择此树作为最佳修剪树。
因此,当您使用 时plotcp
,它会从最小到最大绘制每个子树的相对交叉验证误差,以便您比较每个复杂性参数的风险β.
例如,使用rpart
包中的 StageC 癌症预后数据集参考以下拟合:
> printcp( cfit)
Classification tree:
rpart(formula = progstat ~ age + eet + g2 + grade + gleason +
ploidy, data = stagec, method = "class")
Variables actually used in tree construction:
[1] age g2 grade ploidy
Root node error: 54/146 = 0.36986
n= 146
CP nsplit rel error xerror xstd
1 0.104938 0 1.00000 1.00000 0.10802
2 0.055556 3 0.68519 1.16667 0.11083
3 0.027778 4 0.62963 0.96296 0.10715
4 0.018519 6 0.57407 0.96296 0.10715
5 0.010000 7 0.55556 1.00000 0.10802
交叉验证的错误按比例缩小以便于阅读;图上的误差条显示 x 验证误差的一个标准偏差。
参考:
- 使用 RPART 例程进行递归分区的介绍,URL:https ://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf