Как выбрать количество узлов в rpart? - PullRequest
0 голосов
/ 21 октября 2018

В пакете 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 голосов
/ 21 октября 2018
Пакет

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) 
...