如何从ctree函数中提取树结构?

时间:2011-12-30 02:48:53

标签: r

我正在尝试从ctree的输出中提取树信息。我尝试了类“BinaryTree”信息,但没有成功。任何意见都表示赞赏。

谢谢

3 个答案:

答案 0 :(得分:12)

ctree对象至少在顶部是S4对象,树信息在“树”槽中。可以使用@运算符访问“树槽”。如果您在帮助(ctree)页面中获取第一个示例,则可以获得图形显示:

plot(airct)

enter image description here

然后你可以通过遍历列表操作来查看树的分支。树的“叶子”是具有“终端”== 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)

帮我看树结构。

相关问题