gpt4 book ai didi

r - 如何提取ctree()终端节点的拆分规则

转载 作者:行者123 更新时间:2023-12-03 20:19:03 26 4
gpt4 key购买 nike

我有一个包含 6 个分类变量的数据集,级别从 5 到 28。我从带有 17 个终端节点的 ctree()(派对包)获得了一个输出。我关注了@Galled 来自 ctree() - How to get the list of splitting conditions for each terminal node? 的输入达到我想要的输出。

但是,我在运行代码时收到以下错误消息:

Error in data.frame(ResulTable, Means, Counts) : 
arguments imply differing number of rows: 17, 2

我试过添加这个额外的行:
ResulTable <- rbind(ResulTable, cbind(Node = Node, Path = Path2))

ResulTable$Node <- rownames(ResulTable)

melt(ResulTable)

但到目前为止还没有成功。关于哪里出错的任何指示?

最佳答案

我建议使用新的 partykit ctree() 的实现而不是旧的party包,然后你可以使用功能.list.rules.party() .这尚未正式导出,但可以用来提取所需的信息。

library("partykit")
airq <- subset(airquality, !is.na(Ozone))
ct <- ctree(Ozone ~ ., data = airq)
partykit:::.list.rules.party(ct)
## 3 5
## "Temp <= 82 & Wind <= 6.9" "Temp <= 82 & Wind > 6.9 & Temp <= 77"
## 6 8
## "Temp <= 82 & Wind > 6.9 & Temp > 77" "Temp > 82 & Wind <= 10.3"
## 9
## "Temp > 82 & Wind > 10.3"

关于r - 如何提取ctree()终端节点的拆分规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com