2017-08-08 1 views
0

fancyRpartPlotデシジョンツリー内のノードの上にある数字は、何を意味しますか?私は下の図でそれらを強調しました。fancyRpartPlot決定木のノードの上にある数字は、どういう意味ですか?

Example fancyRPartPlot

私の推測では、彼らは、ノードの順序/ランクされているということですが、私は数字に(目の例では、9-11が欠落している)ジャンプを説明することはできません。

+0

まあ、それはちょうどノードの番号です。あなたのツリーオブジェクトで 'print'を使うと、数字の順序がもっと意味をなさないでしょう。 – zielinskipp

答えて

2

番号をこれについていくつかのコメントを見つけることができます。これらはによって作成されたノード番号は、あるように見えるprpのソースコードを見てみますツリー内の各ノードのtopは、デフォルトのprint()メソッドによって生成されたツリーのテキスト表現の枝番号に対応しています。確認するには:

> dt <- rpart::rpart(Species ~ ., iris) 
> print(dt) 
n= 150 

node), split, n, loss, yval, (yprob) 
     * denotes terminal node 

1) root 150 100 setosa (0.33 0.33 0.33) 
    2) Petal.Length< 2.45 50 0 setosa (1.00 0.00 0.00) * 
    3) Petal.Length>=2.45 100 50 versicolor (0.00 0.50 0.50) 
    6) Petal.Width< 1.75 54 5 versicolor (0.00 0.91 0.093) * 
    7) Petal.Width>=1.75 46 1 virginica (0.00 0.022 0.98) * 
> rattle::fancyRpartPlot(dt) 

enter image description here

を、最終的なツリーには表示されません枝とそれらの剪定枝の一部を削除するには、ツリーをチューニング()RPARTからの結果を「ジャンプ」。

+0

ありがとう、ちょうど私が探していた答え! – marqram

0

fancyRpartPlotは、prpの単なるラッパーです。

if(nn || ni) 
     draw.node.numbers(nn, ni, draw.shadows1, type, branch, 
       Margin, xflip, yflip, cex, 
       main, sub, col.main, cex.main, col.sub, cex.sub, 
       xlim, ylim, node.xy, is.leaf, nodes, 
       node.labs, font, family, box.col, border.col, shadow.col, 
       under.cex, under.font, under.ygap, ygap, 
       split.labs, split.cex * cex, split.font, split.family, split.box.col, 
       split.border.col, split.shadow.col, 
       nn.cex, nn.font, nn.family, nn.col, nn.box.col, 
       nn.border.col, nn.lty, nn.lwd, nn.round, 
       split.adj, split.space, split.yspace, split.yshift, 
       yshift, adj, space, yspace, shadow.offset, 
       nn.adj, nn.yshift, nn.space, nn.yspace, bg) 

list(node.boxes=node.boxes, split.boxes=split.boxes) 

https://github.com/cran/rpart.plot/blob/master/R/prp.R

ます。また、コード内で

+0

ありがとう!私は彼がprint(ツリー)の結果も見て、数字ノードもそこに見ることができることを発見しました。しかし、なぜノードに番号が付けられているのか分かりません。剪定段階で消滅したノードはありますか? – marqram

+0

できます。私は今会議中ですが、仕事を辞めた後はフォローアップします。 –

関連する問題