library(rpart)
tree = rpart(Kyphosis ~ ., data=kyphosis, control=rpart.control(minsplit = 1, cp = 0, xval=10))
plotcp(tree, minline = FALSE, upper=c("splits"))
据我了解 xval=10 对应于 10 倍交叉验证。因此 rpart 算法将构建 10 棵不同的树(不修剪,直到所有训练示例都被尽可能分类[用 minsplit=1, cp=0 控制它]...这意味着我的树可能会过拟合)。然后算法遍历每棵树并计算其在测试集上的错误率。接下来,它查看所有复杂度参数 (cp),并确定如果使用该复杂度参数 (cp),树将如何在测试集上完成。我的问题:
拆分的数量如何直接对应于复杂度参数?不是正在构建 10 种不同的树,并且复杂性参数在每种树上的工作方式都不同吗?
返回的最后一棵树是什么?它似乎不是交叉验证期间制作的 10 个之一,因为它的叶子包含整个数据集?
