如何选择 rpart 中的节点数?
How can choose number of nods in rpart?
在tree
包中我们可以使用下面的代码来选择终端点数:
tree.model = tree(...)
tree.prune = prune.tree(tree.model, best = 20)
此代码 returns 具有 20 个终端点的新树。
在 rpart
包中可以使用以下代码:
rpart.model = rpart(...)
rpart.prune = prune.rpart(rpart.model, cp =?)
那cp
是成本复杂度参数。但我想要 prune.tree
.
中类似的 best
参数
rpart
包没有与 tree
包的 best
类似的参数。树包的开发是为了涵盖 rpart
缺少的功能。
要选择合适的节点数,您可以调整rpart
中的其他参数。例如
prune.control <- rpart.control(minsplit = 20, minbucket = round(minsplit/3), xval = 10)
rpart(formula, data, method, control = prune.control)
然后,评估交叉验证错误与 cp,以选择 cp
值。此外,您可以使用 caret
包自动调整 cp
值。例如
ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 5)
model <- train(x = train_data,
y = labels,
method = "rpart",
trControl = ctrl)
在tree
包中我们可以使用下面的代码来选择终端点数:
tree.model = tree(...)
tree.prune = prune.tree(tree.model, best = 20)
此代码 returns 具有 20 个终端点的新树。
在 rpart
包中可以使用以下代码:
rpart.model = rpart(...)
rpart.prune = prune.rpart(rpart.model, cp =?)
那cp
是成本复杂度参数。但我想要 prune.tree
.
best
参数
rpart
包没有与 tree
包的 best
类似的参数。树包的开发是为了涵盖 rpart
缺少的功能。
要选择合适的节点数,您可以调整rpart
中的其他参数。例如
prune.control <- rpart.control(minsplit = 20, minbucket = round(minsplit/3), xval = 10)
rpart(formula, data, method, control = prune.control)
然后,评估交叉验证错误与 cp,以选择 cp
值。此外,您可以使用 caret
包自动调整 cp
值。例如
ctrl <- trainControl(method = "repeatedcv", number = 10, repeats = 5)
model <- train(x = train_data,
y = labels,
method = "rpart",
trControl = ctrl)