R rpart 创建终端节点 table
R rpart creating terminal nodes table
我想从我的 rpart 输出创建一个 table(见下文)。
table 基本上应该包含以下变量作为数据框:
- 终端节点数(以下示例为 4、10、22、23、3)
- 终端节点观察
- 终端节点目标 cnt(每个节点中不存在或存在的数量)
但是我想在更改或修剪树时自动执行此操作。
有什么建议吗?
library(rpart)
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
rp
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
我想从我的 rpart 输出创建一个 table(见下文)。
table 基本上应该包含以下变量作为数据框: - 终端节点数(以下示例为 4、10、22、23、3) - 终端节点观察 - 终端节点目标 cnt(每个节点中不存在或存在的数量)
但是我想在更改或修剪树时自动执行此操作。
有什么建议吗?
library(rpart)
rp <- rpart(Kyphosis ~ Age + Number + Start, data = kyphosis)
rp
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