fancyRpartPlot决策树中节点顶部的数字是什么意思?

时间:2017-08-08 13:54:26

标签: r rattle

fancyRpartPlot决策树中节点顶部的数字是什么意思?我在下面的图片中突出显示了它们。

Example fancyRPartPlot

我的猜测是它们是节点的顺序/等级,但我无法解释数字中的跳跃(例如,9-11缺失)。

3 个答案:

答案 0 :(得分:3)

树中每个节点顶部的数字对应于默认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()调整树以删除一些分支,那些修剪过的分支不会出现在最终树中。

答案 1 :(得分: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

您还可以在代码中找到有关此内容的一些评论

答案 2 :(得分:0)

每个节点的顶​​部数字代表多数类别/类别ID。在您的情况下,在开始节点0.4(或40%)是类别值&#34; 2&#34;。