如何打印带有范围的数值变量的 ctree 终端节点

Posted

技术标签:

【中文标题】如何打印带有范围的数值变量的 ctree 终端节点【英文标题】:How can I print ctree terminal nodes for numerical variables with the range on them 【发布时间】:2017-11-15 11:55:57 【问题描述】:

我在一个数值上运行 ctree。我有许多终端节点,我正试图让它们更具人类可读性。

我可以获得终端节点的信息 (例如,节点 15,0.529,n=30539,err = 7609) 我可以使用

获得拆分规则
list.rules.party()

(例如,daysdq 2 & daysdq > 6)

有没有什么办法可以得到一个简化的版本,我得到了一些类似的东西:

节点 15、6

本质上,除了正常的终端节点数据之外,是否有一个命令可以为我提供简化的数值范围规则?派对或派对包都可以

这是一个可重现的示例。它应该创建 5 个终端节点 300

library(partykit)

set.seed(27864)

#Read In Data
x<-runif(100000,100,500)
y<-ifelse(runif(100000,0,1) < floor(x/50)/30*5,1,0)
mydata1<-data.frame(y,x)

FMLA = y ~ x
TreeMdl = ctree(FMLA,
            data=mydata1,
)
plot(TreeMdl, type = "simple")
print(TreeMdl)

partykit:::.list.rules.party(TreeMdl)

【问题讨论】:

如果您提供reproducible example 会更容易提供帮助,这样可以测试和验证可能的解决方案。 为你添加了 MrFlick 【参考方案1】:

这个question 可能有助于获得更短的规则。 它不会将其减少到您提到的程度,因为我认为树将为每个拆分变量生成间隔,您不应该将其减少到只有一个数字。此外,如果您有更多拆分变量,则需要区分它们。

【讨论】:

谢谢。这有帮助。

以上是关于如何打印带有范围的数值变量的 ctree 终端节点的主要内容,如果未能解决你的问题,请参考以下文章

ctree() - 如何获取每个终端节点的拆分条件列表?

如何获取所有终端节点 - r 中的权重和响应预测“ctree”

如何为 ctree(打包方)的终端节点添加标签?

ctree 图的终端节点中的缩放图

ctree 在 R 中的派对包中绘制决策树,终端节点出现一些奇怪的数字 - 问题?

如何将 ctree 节点变成向量?