【问题标题】:How to extract tree structure from ctree function?如何从 ctree 函数中提取树结构?
【发布时间】:2016-05-01 08:51:01
【问题描述】:

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

谢谢

【问题讨论】:

  • 你说的是在 'party' 包中找到的 ctree 吗?

标签: r


【解决方案1】:

假设您的 ctree 模型名为 ct。那么

print(ct)

帮我查看了树结构。

【讨论】:

    【解决方案2】:

    mlmeta R 包将拟合的 ctree 模型转换为 SAS 代码。它可以很容易地适应其他语言,并且通常对对象的内部结构具有指导意义。

    【讨论】:

      【解决方案3】:

      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 
      

      【讨论】:

      • @user1122211 - 为了表明 DWin 回答了您的问题 - 我说得非常好 - 作为对他的另一种感谢形式,您可以通过直接单击它的复选标记来“接受”它左边。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2013-03-19
      相关资源
      最近更新 更多