【问题标题】:How to get percentages from decision tree for each node如何从决策树中获取每个节点的百分比
【发布时间】:2015-01-01 07:56:32
【问题描述】:

如何创建一个表格,其中包含下图中每个节点的百分比?

library(rpart)
library(rattle)
library(rpart.plot)
library(RColorBrewer)

fit <- rpart(Species ~ ., data=iris, method="class")
fancyRpartPlot(fit)

结果如下图:

我想输出一个表格,第一列是物种,第二列是每个节点的相关百分比。表的第二次迭代将排除第一个节点 (100%) 并通过保留包含更高百分比的行来删除重复项。

浏览“rpart”文档后,我仍然无法弄清楚如何创建此表。请让我知道你的想法。

感谢您的宝贵时间。

【问题讨论】:

  • 似乎 rpart.print 或 rpart.summary 函数提供了您要查找的信息,但不提供格式。也许你可以显示/修改函数,或者输出。
  • 可以使用getAnywhere(summary.rpart)查看函数。

标签: r rpart


【解决方案1】:

rpart-object 的 where 元素是终端节点的预测类。您可以通过以下方式在表格中获取此信息:

> iris$where <- fit$where
> with(iris, table(Species, where))
            where
Species       2  4  5
  setosa     50  0  0
  versicolor  0 49  1
  virginica   0  5 45

我猜你想要列总和除以总计数?

> 100*colSums(with(iris, table(Species, where)) )/150
       2        4        5 
33.33333 36.00000 30.66667 

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 2020-01-27
    • 2021-12-25
    • 2018-09-23
    • 2016-06-17
    • 2020-04-04
    • 2022-10-18
    • 2019-02-08
    • 2020-07-25
    相关资源
    最近更新 更多