【发布时间】:2021-04-17 03:26:15
【问题描述】:
我正在使用 R 编程语言。我使用“rpart”库并使用一些数据拟合决策树:
#from a previous question : https://stackoverflow.com/questions/65678552/r-changing-plot-sizes
library(rpart)
car.test.frame$Reliability = as.factor(car.test.frame$Reliability)
z.auto <- rpart(Reliability ~ ., car.test.frame)
plot(z.auto)
text(z.auto, use.n=TRUE, xpd=TRUE, cex=.8)
这很好,但我正在寻找一种更简单的方法来总结这棵树的结果,以防树变得太大、复杂和混乱(并且无法可视化)。我在这里找到了另一个 stackoverflow 帖子,显示了如何获取规则列表:Extracting Information from the Decision Rules in rpart package
library(party)
library(partykit)
party_obj <- as.party.rpart(z.auto, data = TRUE)
decisions <- partykit:::.list.rules.party(party_obj)
cat(paste(decisions, collapse = "\n"))
这将返回以下规则列表(每一行是对应于“z.auto”图的规则):
Country %in% c("NA", "Germany", "Korea", "Mexico", "Sweden", "USA") & Weight >= 3167.5
Country %in% c("NA", "Germany", "Korea", "Mexico", "Sweden", "USA") & Weight < 3167.5
Country %in% c("NA", "Japan", "Japan/USA")>
但是,从这个列表中,不可能知道哪个规则导致哪个“可靠性”值。目前,我是手动解释树,并手动将每个规则跟踪到结果,但是有没有办法在每一行添加“可靠性的相应值”?
例如有可能制作出这样的东西吗?
Country %in% c("NA", "Germany", "Korea", "Mexico", "Sweden", "USA") & Weight >= 3167.5 then reliability = 3,7,4,0
(注 1:我也不确定为什么这些国家/地区显示为“befgh”而不是其实际名称。
note2:我知道有一个库“rpart.plot”可以更简单地获取这些规则。但是,我使用的计算机没有 Internet 访问权限或 USB 端口,因此我无法下载 rpart.plot 库。我有 R 和一些预加载的包。我正在尝试使用 rpart、dplyr、purr、party、partykit、base R 中的函数等库来获取决策规则)
谢谢
【问题讨论】:
标签: r list function data-manipulation decision-tree