【问题标题】:R rpart creating terminal nodes tableR rpart 创建终端节点表
【发布时间】:2017-08-09 16:14:58
【问题描述】:

我想从我的 rpart 输出创建一个表(见下文)。

该表基本上应包含以下变量作为数据框: - 终端节点数(例如下面的 4,10,22,23,3) - 终端节点观察 - 终端节点目标cnt(每个节点中不存在或存在的数量)

但是我想在更改或修剪树时自动执行此操作。

有什么建议吗?

library(rpart)
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
rp

【问题讨论】:

  • rp$frame 有你想要的所有信息

标签: r decision-tree


【解决方案1】:

rp$frame$var 告诉你一个节点是否是叶子。节点号是 rp$frame 中的行名,这有点模糊。所以你想要的是

rownames(rp$frame)[rp$frame$var == "<leaf>"]
[1] "4"  "10" "22" "23" "3" 

如果你想要 numbers 而不是看起来像数字的字符串,你可以使用

as.numeric(rownames(rp$frame)[rp$frame$var == "<leaf>"])
[1]  4 10 22 23  3

【讨论】:

    猜你喜欢
    • 2016-06-10
    • 2019-05-01
    • 1970-01-01
    • 2015-05-31
    • 2020-06-05
    • 2021-07-22
    • 2012-04-05
    • 1970-01-01
    • 2021-12-22
    相关资源
    最近更新 更多