我正在尝试使用rpart和partykit构建分类决策树,我想知道这些包中是否有任何函数(或任何包,就此而言)允许我创建包含来自特定子树的数据的数据集还是分店?
我知道我可以使用DT规则手动创建原始数据集的子集,但我正在尝试自动化某个过程并发现该功能对我有很大的帮助。
示例:
library (rpart)
library(partykit)
data("Titanic", package = "datasets")
ttnc <- as.data.frame(Titanic)
ttnc <- ttnc[rep(1:nrow(ttnc), ttnc$Freq), 1:4]
names(ttnc)[2] <- "Gender"
rp <- rpart(Survived ~ Gender + Age + Class, data = ttnc)
prp <- as.party(rp)
prp[5]
让我们说我想从子树#5中提取数据,这些包中是否有允许我这样做的功能?
谢谢!
答案 0 :(得分:2)
我不知道您是否通过使用DT规则来表示这一点,但您可以使用partykit包的predict()
函数来预测节点/分支,然后根据您的子树分割数据
ttnc$Node <- predict(prp, newdata = ttnc, type = "node")
subtree <- subset(ttnc, Node == 5)
答案 1 :(得分:2)
除了@JakobGepp发布的解决方案之外,您还可以使用data_party()
提供的partykit
功能:
data_party(prp, id = 5)
从本质上讲,这在内部做了同样的事情,雅各布手工明确地做了。