2016-11-30 11 views
2

RPARTを使用しておもちゃの木モデルを構築するとしたら、ツリーの深さをどのように取得できますか?私は葉をカウントする方法を知っているRPARTモデルでツリーの深さを取得するにはどうすればよいですか?

library(rpart) 
library(partykit) 
fit=rpart(factor(am)~.,mtcars,control=rpart.control(cp=0,minsplit = 1)) 
plot(as.party(fit)) 

は、バイナリツリーのために、我々は、葉の数で深さを近似することができるが、それは直接、木の深さではありません。

答えて

4
sum(fit$frame$var=="<leaf>") 

RPARTは、渡されたノード番号のベクトル内の各ノードの深さを与えるアンエクスポート機能tree.depthを有しています。質問のデータを使用:

nodes <- as.numeric(rownames(fit$frame)) 
max(rpart:::tree.depth(nodes)) 
## [1] 2 
+0

ありがとうございます、この回答は完璧です。しかし、あなたはどのようにして未知の機能を知っていましたか?あなたはソースコードをチェックしましたか? – hxd1011

+0

はい。 1つはソースを確認する必要があります。 https://github.com/cran/rpart/blob/4a009f14f2b342baa2df55854d578a45b16a17da/R/zzz.R –

+0

ソースを確認した場合、この質問に答えることができますか? http://stats.stackexchange.com/questions/248706/why-i-cannot-achieve-100-accuracy-in-my-simple-training-data-with-cart-model – hxd1011

関連する問題