gpt4 book ai didi

r - 使用 rpart.plot 功能绘制 ctree

转载 作者:行者123 更新时间:2023-12-04 10:58:36 26 4
gpt4 key购买 nike

一直在尝试使用 rpart.plot包绘制 ctree来自 partykit图书馆。这样做的原因是当树很深时,默认的绘图方法很糟糕。就我而言,我的 max_depth = 5 .
我真的很喜欢rpart.plot的输出,因为它允许深树在视觉上显示得更好。输出如何寻找一个简单的例子:
部分

library(partykit)
library(rpart)
library(rpart.plot)

df_test <- cu.summary[complete.cases(cu.summary),]

multi.class.model <- rpart(Reliability~., data = df_test)

rpart.plot(multi.class.model)
enter image description here
我想使用 ctree 从 partykit 模型中获取此输出
multi.class.model <- ctree(Reliability~., data = df_test)

rpart.plot(multi.class.model)
>Error: the object passed to prp is not an rpart object
有什么方法可以将 ctree 对象强制为 rpart所以这会运行吗?

最佳答案

据我所知,所有其他可视化包 rpart树真的是rpart -特定的而不是基于不可知论者 party用于表示树/递归分区的类。此外,我们还没有尝试实现 as.rpart() party 的方法对象,因为 rpart class 真的不适合这个。

但是您可以尝试调整 partykit可通过面板功能对树的几乎所有方面进行自定义的可视化。可能有用的一件事是计算 simpleparty $info中包含各种简单摘要信息的对象每个节点的。然后可以在 node_terminal() 中使用它用于在树显示中打印信息的面板功能。考虑以下用于预测德国社会经济小组中三种学校类型之一的简单示例。为了达到所需的深度,我基本上关闭了显着性测试:

library("partykit")
data("GSOEP9402", package = "AER")
ct <- ctree(school ~ ., data = GSOEP9402, maxdepth = 5, alpha = 0.5)

默认 plot(ct)在足够大的设备上为您提供:

ctree-default

当把树变成 simpleparty默认情况下,您会获得文本摘要:
st <- as.simpleparty(ct)
plot(st)

simpleparty

这仍然有重叠的标签,所以我们可以设置一个小的便利函数,从 $info 中提取有趣的位每个节点,并将它们放入一个较长的字符向量中,条目宽度较小:
myfun <- function(i) c(
as.character(i$prediction),
paste("n =", i$n),
format(round(i$distribution/i$n, digits = 3), nsmall = 3)
)
plot(st, tp_args = list(FUN = myfun), ep_args = list(justmin = 20))

simpleparty2

除了终端面板函数 ( tp_args ) 的参数之外,我还调整了边缘面板函数 ( ep_args ) 的参数以避免边缘的一些过度绘制。

当然,您也可以更改整个面板功能并自行滚动......

关于r - 使用 rpart.plot 功能绘制 ctree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48322213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com