【发布时间】:2021-07-17 23:09:27
【问题描述】:
我想创建一个表格来总结条件推理树 (ctree) 的拆分规则,以便每个预测变量位于单独的列中,并且每一行是一个终端节点,每个预测变量都有相应的值。例如:
IrisTree <- ctree(Species ~ ., data = iris)
这导致了这棵树:
并以如下方式存储结果:
另外,我想在最后一列中嵌入在终端节点处产生的每个图,但我正在努力寻找一种单独存储图的方法。有可能吗?
【问题讨论】:
我想创建一个表格来总结条件推理树 (ctree) 的拆分规则,以便每个预测变量位于单独的列中,并且每一行是一个终端节点,每个预测变量都有相应的值。例如:
IrisTree <- ctree(Species ~ ., data = iris)
这导致了这棵树:
并以如下方式存储结果:
另外,我想在最后一列中嵌入在终端节点处产生的每个图,但我正在努力寻找一种单独存储图的方法。有可能吗?
【问题讨论】:
拆分摘要可以建立在(仍然未导出的)函数.list.rules.party():
partykit:::.list.rules.party(IrisTree)
## 2
## "Petal.Length <= 1.9"
## 5
## "Petal.Length > 1.9 & Petal.Width <= 1.7 & Petal.Length <= 4.8"
## 6
## "Petal.Length > 1.9 & Petal.Width <= 1.7 & Petal.Length > 4.8"
## 7
## "Petal.Length > 1.9 & Petal.Width > 1.7"
有关拆分摘要的进一步处理,另请参阅以下答案:
通过适当地对树进行子集化,可以很容易地获得各个图。一般来说,如果tree 是party 对象,那么tree[i] 就是植根于节点i 的party 对象。这些仍然可以像以前一样绘制。
因此,当仅选择和绘制一个终端节点时,这将为您提供来自该终端节点的面板:
plot(IrisTree[5])
【讨论】: