更改 randomForest R 代码中节点特征子集选择的采样方法

Posted

技术标签:

【中文标题】更改 randomForest R 代码中节点特征子集选择的采样方法【英文标题】:Changing sampling method for feature subset selection at nodes in randomForest R code 【发布时间】:2018-01-01 21:44:33 【问题描述】:

我正在研究“randomForest”R 包,以更改森林中树节点处特征子集选择的采样方法。目前随机森林使用简单的随机抽样来做到这一点。我尝试使用命令查看 R 代码

图书馆(随机森林)

getAnywhere(randomForest.default)

但找不到选择“mtry”功能的相关代码块。如何在源代码中进行这种更改?

【问题讨论】:

【参考方案1】:

我也尝试使用this SO question中描述的S3和S4方法,但是没有看到randomForest包中的所有功能,更重要的是,没有看到randomForest()方法列出。

但是,如果您导航到 randomForest 的 CRAN 页面,您将看到包源代码的链接:

https://cran.r-project.org/web/packages/randomForest/index.html

您可以从上面的链接下载包含该软件包所有源代码的 TAR 文件。实际的源代码似乎在 code 文件夹中,例如rf.c 看起来可能是您要重构的文件。

【讨论】:

您是否尝试过使用我上面提供的链接?我在不到 5 分钟的时间内下载了 randomForest 包的完整源代码。实际上,如果您想对代码进行认真的重构,我实际上认为我的答案是要走的路,因为它允许您获得包含所有内容的 TAR。 是的,我有包含 .c 函数的源代码,但找不到它 查找需要更改的文件完全取决于您,因为我们无法确切知道您的想法。 我想重构在节点处选择变量子样本的块 老实说,为了可靠地更改算法,您需要了解它的工作原理,至少在相当深的层次上。因此,您可能需要花一点时间阅读源代码。这不是浪费您的时间,因为您可能会在此过程中学到很多东西。

以上是关于更改 randomForest R 代码中节点特征子集选择的采样方法的主要内容,如果未能解决你的问题,请参考以下文章

并行化 rfcv() 函数以在 randomForest 包中进行特征选择

R语言使用randomForest包构建随机森林模型(Random forests)使用importance函数查看特征重要度使用table函数计算混淆矩阵评估分类模型性能包外错误估计OOB

获取叶节点决策路径中的所有特征(随机森林)

如何更改 R 中随机森林的分割标准?

R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accurayF1偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

在 R 的 randomForest 包中,因子是不是必须明确标记为因子?