如何遍历R中rpart对象的树结构?我需要获取与子树关联的所有节点,我该怎么做?

Posted

技术标签:

【中文标题】如何遍历R中rpart对象的树结构?我需要获取与子树关联的所有节点,我该怎么做?【英文标题】:How to traverse the tree structure of rpart object in R? I need to get all the nodes associated with a subtree, how can I do it? 【发布时间】:2015-03-14 06:55:05 【问题描述】:

我正在使用 rpart 来构建决策树分类器。我希望根据与子树对应的叶节点的某些参数使用我自己的修剪功能。为此,我认为我需要遍历树。我探索了 rpart 的文档,但想不出办法。请帮忙。

【问题讨论】:

函数dendrapply() 可能就是你要找的 您可以使用partykit 包中的as.party() 强制函数。这会将rpart 结构转换为称为party 的结构,该结构带有许多便利工具,包括nodeapply()nodeprune() 函数。有关介绍,请参阅 vignette("partykit", package = "partykit"),有关示例,包括来自 rpart 的强制,请参阅 vignette("constparty", package = "partykit") @Andrie dendrapply() 函数将传递的函数应用于每个节点并返回更改后的树。这不是我要找的。我希望得到每个叶子节点对应一个子树。 【参考方案1】:

看看我在extracting predictors from ctree object的树遍历代码

这可能会有用。

【讨论】:

以上是关于如何遍历R中rpart对象的树结构?我需要获取与子树关联的所有节点,我该怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用rpart包构建决策树模型选择合适的树大小(复杂度)检查决策树对象的cptable内容(树的大小由分裂次数定义预测误差)使用plotcp函数可视化决策树复杂度参数与交叉验证错误的关系

rpart 中 CP 表给出的树大小

如何从回归树 rpart 对象生成预测区间?

获取 R 中 rpart/ctree 包的每一行预测数据集的决策树规则/路径模式

使用 rpart 生成 sankey 图的决策树

使用 R 中“rpart”包中的生存树来预测新的观察结果