如何提取ctree()的终端节点的分裂规则
How to extract the splitting rules for the terminal nodes of ctree()
我有一个包含 6 个分类变量的数据集,级别从 5 到 28。我从 ctree()(派对包)获得了一个带有 17 个终端节点的输出。我遵循了来自 ctree() - How to get the list of splitting conditions for each terminal node? 的@Galled 的输入以达到我想要的输出。
但是,我收到以下错误 post 运行 代码:
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)
但到目前为止还没有成功。关于哪里出错的任何指示?
我建议使用 ctree()
的新 partykit
实现而不是旧的 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"
我有一个包含 6 个分类变量的数据集,级别从 5 到 28。我从 ctree()(派对包)获得了一个带有 17 个终端节点的输出。我遵循了来自 ctree() - How to get the list of splitting conditions for each terminal node? 的@Galled 的输入以达到我想要的输出。
但是,我收到以下错误 post 运行 代码:
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)
但到目前为止还没有成功。关于哪里出错的任何指示?
我建议使用 ctree()
的新 partykit
实现而不是旧的 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"