>我正在尝试使用 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 中提取数据,这些包中是否有任何功能允许我这样做?
谢谢!
除了 @JakobGepp 发布的解决方案之外,您还可以使用 partykit
提供的data_party()
函数:
data_party(prp, id = 5)
从本质上讲,这在内部做同样的事情,Jakob明确地手工做了。
您是否使用 DT 规则来表达这个意思,但您可以使用 partykit 包的 predict()
函数来预测节点/分支,然后根据您的子树拆分数据。
ttnc$Node <- predict(prp, newdata = ttnc, type = "node")
subtree <- subset(ttnc, Node == 5)