如何打印带有范围的数值变量的 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 终端节点的主要内容,如果未能解决你的问题,请参考以下文章
如何获取所有终端节点 - r 中的权重和响应预测“ctree”