节点深度rpart

时间:2016-03-23 07:18:56

标签: r tree nodes depth rpart

我正在使用rpart开发分类树。我需要每个节点的深度,以便识别更加孤立(距离父节点更远)的节点和更接近父节点的节点。有谁知道如何获得这些信息?提前致谢!

1 个答案:

答案 0 :(得分:0)

我不确定你想要的深度是父母的数量还是孩子的数量。使用depth()包中的partykit方法可能有助于计算子级数。您可以在从rpart强制转换为party然后使用nodeapply()时使用此功能:

## packages
library("rpart")
library("partykit")
## rpart tree
rp <- rpart(Species ~ ., data = iris)
## coercion to party
pr <- as.party(rp)
plot(pr)
## query depth of each node
nodeapply(pr, ids = nodeids(pr), depth)
## $`1`
## [1] 2
## 
## $`2`
## [1] 0
## 
## $`3`
## [1] 1
## 
## $`4`
## [1] 0
## 
## $`5`
## [1] 0

您可以查看depth.party()的源代码,了解这种循环如何通过树递归。可以使用类似的代码来查找父母的层数。