有没有一种方法可以在 R 中绘制随机森林的输出?

机器算法验证 r 回归 数据可视化 造型 随机森林
2022-03-22 13:25:03

很好很简单。我花了两个小时在谷歌上搜索、阅读交叉验证和几个 r 博客,试图找到一种在 R 中输出代表树的简单方法。

我试图向一位同事证明,随机森林比他在同一数据集上的线性回归产生了更好的结果(准确度更高且可重复性更高)。然而,他最终表示这并不重要,因为他已经放弃向他的上级解释。他的老板想使用线性回归模型,因为他可以反过来向上级解释。虽然本质上他们必须信任随机森林的输出。

我记得可以显示由 CART 模型生成的树,在我的谷歌搜索中,我发现您也可以简单地在 cforest 包中的 ctree 输出上调用 plot() 。但是,我似乎找不到以相同方式绘制随机森林(或 cforest)输出的方法。

有没有办法做到这一点?或者,是否有一种已知的方法可以从森林中提取树以使用现有工具进行绘图?

1个回答

有许多实现 randomForest 的包。Party是支持绘图的其中之一

首先建立一个森林:

library("party")
cf <- cforest(Species~., data=iris)

然后提取一棵树并构建可以绘制的二叉树:

pt <- prettytree(cf@ensemble[[1]], names(cf@data@get("input"))) 
nt <- new("BinaryTree") 
nt@tree <- pt 
nt@data <- cf@data 
nt@responses <- cf@responses 

plot(nt, type="simple")

在此处输入图像描述