我正在尝试从ctree的输出中提取树信息。我尝试了类“BinaryTree”信息,但没有成功。任何意见都表示赞赏。
谢谢
答案 0 :(得分:12)
ctree对象至少在顶部是S4对象,树信息在“树”槽中。可以使用@运算符访问“树槽”。如果您在帮助(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
答案 1 :(得分:1)
mlmeta R包将拟合的ctree模型转换为SAS代码。它可以很容易地适应其他语言,并且通常对对象的内部有启发性。
答案 2 :(得分:0)
假设您的 ctree 模型名为 ct
。那么
print(ct)
帮我看树结构。