在tree
包中,我们可以使用以下代码选择终端点的数量:
tree.model = tree(...)
tree.prune = prune.tree(tree.model, best = 20)
此代码返回带有20个终端点的新树。
在rpart
包中,以下代码可用于此目的:
rpart.model = rpart(...)
rpart.prune = prune.rpart(rpart.model, cp =?)
cp
是成本复杂度参数。但我想在best
中使用类似的prune.tree
自变量。
答案 0 :(得分:0)
rpart
软件包与best
软件包的tree
没有类似的参数。开发该树包是为了弥补缺少rpart
的功能。
要选择适当的节点数,可以调整rpart
中的其他参数。例如。
prune.control <- rpart.control(minsplit = 20, minbucket = round(minsplit/3), xval = 10)
rpart(formula, data, method, control = prune.control)
然后,评估交叉验证错误与cp的关系,以选择一个cp
值。另外,您可以使用cp
包自动调整caret
的值。例如。
ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 5)
model <- train(x = train_data,
y = labels,
method = "rpart",
trControl = ctrl)