2016-03-23 5 views
0

Ich wachse einen Klassifikationsbaum mit rpart. Ich brauche die Tiefe jedes Knotens, um die Knoten zu identifizieren, die isolierter sind (entfernter vom übergeordneten Knoten) und die Knoten, die näher am übergeordneten Knoten sind. Weiß jemand, wie ich diese Informationen bekommen kann? Danke im Voraus!Knotentiefe rpart

Antwort

0

Ich bin mir nicht sicher, ob die gewünschte Tiefe die Anzahl der Eltern oder die Anzahl der Kinder ist. Es könnte helfen, die depth()-Methode aus dem partykit-Paket zu verwenden, das die Anzahl der Ebenen von Kindern berechnet. Sie können dies verwenden, wenn rpart-party Nötigung und dann nodeapply() mit:

## 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 

Sie auf den Quellcode von depth.party() schauen, um zu sehen, wie diese Zyklen rekursiv durch den Baum. Ein ähnlicher Code könnte verwendet werden, um die Anzahl der Schichten von Eltern zu finden.

Verwandte Themen