据我所知,所有其他可视化包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)
在足够大的设备上为您提供:
当把树变成一棵树时simpleparty
默认情况下您会得到文本摘要:
st <- as.simpleparty(ct)
plot(st)
这仍然有重叠的标签,所以我们可以设置一个小的便利函数,从$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))
除了终端面板函数的参数(tp_args
)我已经调整了边缘面板函数的参数(ep_args
)以避免边缘出现一些过度绘制。
当然,您也可以更改整个面板功能并推出您自己的......