2017-08-08 364 views
0

fancyRpartPlot決策樹中節點頂部的數字是什麼意思?我在下面的圖片中突出顯示了它們。fancyRpartPlot決策樹中節點頂部的數字是什麼意思?

Example fancyRPartPlot

我的猜測是,他們是節點的順序/等級,但我無法解釋這些數字的跳躍(在日例如,9-11缺失)。

+0

那麼,它只是節點的編號。在你的樹形對象上使用'print',然後數字的排序會更有意義。 – zielinskipp

回答

2

在數字樹中每個節點的頂​​部對應於默認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的包裝。綜觀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

謝謝!我仔細看了他的打印(樹)結果,發現我也能看到那裏的數字節點。然而,我不清楚爲什麼節點編號存在差距。那些節點在修剪階段消失了嗎? – marqram

+0

可能。我現在正在開會,但下班後我會跟進。 –