rpart получает значения для каждого листа обрезанного дерева

Я изучаю использование rpart и чувствую, что я все еще довольно сырой, и еще есть чему поучиться. Я строил это дерево по своему требованию и получил дерево. Однако мне нужно, наконец, сгруппировать мою категориальную переменную в группы, основанные на листьях дерева. Для этого мне нужно знать значения для каждого отпуска. Как я могу получить эти значения и сохранить их в переменной.

Ниже приведен пример данных и мой код -

library(rpart)
library(rpart.plot)
library(rattle)

set.seed(1200)

ibd <- sort(rep(1:15,400),decreasing = F)
type1 <- sample(1:20,6000,replace = T)
type2 <- sample(1:18,6000,replace = T)
type3 <- sample(1:30,6000,replace = T)
type4 <- sample(1:25,6000,replace = T)
type5 <- sample(1:40,6000,replace = T)
int1 <- sample(800:5000,6000,replace = T)

dat1 <- data.frame(ibd,type1,type2,type3,type4,type5,int1)
v0a <- c("type1","type2","type3","type4","type5")

str(dat1)
dat1[,v0a] <- lapply(dat1[,v0a],factor) 
str(dat1)

vec1 <- c()

for (j in 1:length(v0a)) {
  v3 <- paste0(v0a[j])
  temp2 <- NULL
  temp2 <- dlply(
    smpl
    , .(ibd)
    , function(df) rpart(paste("int1 ~ ",v3), data=(dat1),method="anova", 
                         control=rpart.control(minsplit=3,minbucket = 1, cp=0))
  )

  assign(paste0("tree_",v3),NULL)
  assign(paste0("tree_",v3),temp2)
  vec1 <- c(vec1,paste0("tree_",v3))
}

tree_type1[[1]][["cptable"]]

chk1a <- prune(tree_type1[[1]],cp=3.923103e-05)
fancyRpartPlot(chk1a)

chk1c <- chk1a$frame

nodes <- as.numeric(rownames(chk1a$frame))
max(rpart:::tree.depth(nodes))

#####By below I come to know how many leaves I have
leaves <- chk1a$frame$var == '<leaf>'
leaves_no <- sum(leaves)

Так что в этом случае для tree_type1 после обрезки я получаю дерево с 6 листьями. Как я могу,

  1. Извлеките значения этих листьев и сохраните их в переменной

  2. Ограничить дерево только 5 листьями (так, 5 групп). Для этого я понимаю, что мне нужно справиться с этим во время обрезки. Это может быть автоматизировано?

Некоторое решение и руководство по этому вопросу очень помогли бы.

Спасибо!!

0 ответов

Другие вопросы по тегам