如何遍历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函数可视化决策树复杂度参数与交叉验证错误的关系