如何在rpart中选择点头次数?

时间:2018-10-20 21:39:30

标签: r tree rpart

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自变量。

1 个答案:

答案 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)