J48 partykit 访问平面列表

J48 partykit access flat list

我想访问 party object 的平面列表表示中的各个节点。也就是说,我想获得一个节点、它的拆分和孩子以及任何其他属性。我是 partykit 的新手(刚开始探索)所以不确定我做错了什么。

require("partykit")
require("RWeka")
data("PimaIndiansDiabetes", package = "mlbench")
j48 <- J48(diabetes ~ ., data=PimaIndiansDiabetes)
j48_party <- as.party(j48)
j48_party_list <- as.list(j48_party)
j48_party_list[1:3]
## Error: length(i) == 1 & is.numeric(i) is not TRUE

谢谢

partykit 中只有 as.list() 方法用于 partynode 对象,而不是用于整个 party 对象。前者只包含递归列表节点ID、变量ID、拆分等。所有实际变量名称、数据、拟合值等都没有存储在partynode中,而是存储在party中。

因此,as.list(j48_party) 实际上不会生成平面列表,但它 returns j48_party 对象 "as is" 因为它在内部是一个列表(包含 nodedatafittedterms,等等)。

所以只能为 as.list(j48_party$node) 生成平面列表,但我想这不会有您要查找的信息。 nodeapply() 可能会帮助您获得您想要的...或插图中的其他一些示例。