在R包rpart中,决策树CP表中呈现的树的大小取决于什么?在下面的示例中,CP表默认仅呈现具有1、2和5个节点的树(分别为nsplit = 0、1和4)。
library(rpart)
fit <- rpart(Kyphosis ~ Age + Number + Start, method="class", data=kyphosis)
> printcp(fit)
Classification tree:
rpart(formula = Kyphosis ~ Age + Number + Start, data = kyphosis,
method = "class")
Variables actually used in tree construction:
[1] Age Start
Root node error: 17/81 = 0.20988
n= 81
CP nsplit rel error xerror xstd
1 0.176471 0 1.00000 1.00000 0.21559
2 0.019608 1 0.82353 0.94118 0.21078
3 0.010000 4 0.76471 0.94118 0.21078
rpart()
是否有确定呈现树大小的内在规则?是否可以强制printcp()
返回所有可能树大小的交叉验证统计数据,例如,对于上述示例,还包括具有3个和4个节点(nsplit = 2、3)的树行?
minsplit
和cp
是用于在尝试交叉验证之前生长树的参数,而不是之后修剪它,这就是我的问题和CP表所涉及的内容。如果我误解了,您能否建议为什么上面的输出仅呈现nsplit = 0、1、4以及适当的minsplit
和cp
值可能是呈现nsplit = 0、1、2、3、4?顺便说一句,summary(fit)
没有为所有nsplit值提供交叉验证统计数据-它显示的CP表与问题相同。 - alopex