【发布时间】:2016-05-01 08:51:01
【问题描述】:
我正在尝试从 ctree 的输出中提取树信息。我尝试了“BinaryTree”类信息,但没有成功。任何意见表示赞赏。
谢谢
【问题讨论】:
-
你说的是在 'party' 包中找到的 ctree 吗?
标签: r
我正在尝试从 ctree 的输出中提取树信息。我尝试了“BinaryTree”类信息,但没有成功。任何意见表示赞赏。
谢谢
【问题讨论】:
标签: r
假设您的 ctree 模型名为 ct。那么
print(ct)
帮我查看了树结构。
【讨论】:
mlmeta R 包将拟合的 ctree 模型转换为 SAS 代码。它可以很容易地适应其他语言,并且通常对对象的内部结构具有指导意义。
【讨论】:
ctree 对象至少在顶部是 S4 对象,并且树信息在“tree”槽中。 "tree slot 可以使用 @ 操作符访问。如果您在 help(ctree) 页面中使用第一个示例,您可以获得图形显示:
plot(airct)
然后您可以通过遍历列表操作来查看树的分支。树的“叶子”是具有“终端”==TRUE 的节点的后代:
> airct@tree$right$terminal
[1] FALSE
> airct@tree$left$terminal
[1] FALSE
> airct@tree$right$right$terminal
[1] TRUE
> airct@tree$right$left$terminal
[1] TRUE
> airct@tree$left$left$terminal
[1] TRUE
> airct@tree$left$right$terminal
[1] FALSE
叶子上方节点的信息也可以恢复:
> airct@tree$left$right
4) Temp <= 77; criterion = 0.997, statistic = 11.599
5)* weights = 48
4) Temp > 77
6)* weights = 21
如果您知道节点的编号,这与nodes 函数将恢复的信息相同:
> nodes(airct,4)
[[1]]
4) Temp <= 77; criterion = 0.997, statistic = 11.599
5)* weights = 48
4) Temp > 77
6)* weights = 21
【讨论】: