【问题标题】:Top n classes of leaf nodes from decision tree决策树中前 n 类叶节点
【发布时间】:2016-06-17 13:26:34
【问题描述】:

我正在使用 Rrpart pacakge,我想提取叶节点的前 2 个预测类,而不仅仅是最好的。 以iris数据为例:

fit <- rpart(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris)
print(fit)

输出是:

n= 150 

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

1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)  
  2) Petal.Length< 2.45 50   0 setosa (1.00000000 0.00000000 0.00000000) *
  3) Petal.Length>=2.45 100  50 versicolor (0.00000000 0.50000000 0.50000000)  
    6) Petal.Width< 1.75 54   5 versicolor (0.00000000 0.90740741 0.09259259) *
    7) Petal.Width>=1.75 46   1 virginica (0.00000000 0.02173913 0.97826087) *

我想知道对于每个叶节点,比如节点 7),第二好的预测物种是什么。默认只打印出预测最好的物种virginica

更一般地说,我想知道前 n 个预测类别。

是否可以在不更改rpart 的源代码的情况下从fit 中提取这些信息?

【问题讨论】:

    标签: r decision-tree rpart


    【解决方案1】:

    您可以通过

    找到它们
    > fit$frame$yval2
                                                 nodeprob
    [1,] 1 50 50 50 0.3333333 0.33333333 0.33333333 1.0000000
    [2,] 1 50  0  0 1.0000000 0.00000000 0.00000000 0.3333333
    [3,] 2  0 50 50 0.0000000 0.50000000 0.50000000 0.6666667
    [4,] 2  0 49  5 0.0000000 0.90740741 0.09259259 0.3600000
    [5,] 3  0  1 45 0.0000000 0.02173913 0.97826087 0.3066667
    

    或者你可以从

    中看到
    fancyRpartPlot(fit)
    

    来自拨浪鼓包 - 它是杂色

    我想你会想要一个更复杂的东西,但如果树很简单,图表就可以了。

    【讨论】:

    • 有帮助吗?
    猜你喜欢
    • 2016-06-17
    • 2020-04-07
    • 2015-01-31
    • 2013-01-17
    • 2020-07-25
    • 2017-03-26
    • 1970-01-01
    • 2015-08-05
    • 2019-02-08
    相关资源
    最近更新 更多