随机森林代码审查

Posted

技术标签:

【中文标题】随机森林代码审查【英文标题】:random forest code review 【发布时间】:2011-09-03 17:30:29 【问题描述】:

我正在做一个关于随机森林算法的研究项目。我发现了该算法的许多实现,但代码的主要部分通常是用 Fortran 编写的,而我完全不了解它。

我必须编辑代码,更改主要参数(如树深度、特征变量的数量……)并在每次运行期间跟踪算法的性能。

目前我正在使用“Windows-Precompiled-RF_MexStandalone-v0.02-”。 train 和 predict 函数是 matlab mex 文件,不能打开或编辑。任何人都可以给我一条建议,或者是否有一个有效且完全基于 matlab 的随机森林版本。


我已经仔细阅读了 randomforest-matlab。不幸的是,主要的培训部分是一个 dll 文件。通过阅读更多,我的大部分奇迹现在都解决了。我的问题主要是如何同时运行几棵树。

【问题讨论】:

【参考方案1】:

你看过这些库吗?

Stochastic Bosque randomforest-matlab

【讨论】:

【参考方案2】:

如果你正在做一个研究项目,最好的办法可能是用 C 自己训练实现单个树,然后编写 Mex 包装器。我会从一个 ID3 树开始(例如在尝试 C4.5 之前)。然后编写随机森林代码本身,一旦你编写了树代码,这并不难。

你会:

    学到很多东西 可以随意修改它们 最终与他们一起探索新领域

我自己从头开始实现了它们,因此一旦您发布了一些自己的代码,我可以提供帮助。但我不认为这个网站上的任何人会为你编写代码。

需要努力吗?是的。你会比以前拥有更多的知识和能力吗?毫无疑问。

【讨论】:

谢谢克里斯。是的;似乎没有任何其他选择。我希望我能为 RF 找到一个完全可观察的 matlab 代码。但无论如何我ve already begun the coding. Surely Ill 有进一步的问题。很高兴见到您并感谢您的建议。 我建议您在继续之前非常构建和测试决策。这也为您提供了一个思考设计的好机会。【参考方案3】:

R 中有一个不错的库,叫做 randomForest。它基于 Breiman 在 Fortran 中的原始实现,但现在主要用 C 重新编码。

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

你说的主要参数(树的深度,要测试的特征数量,...)是直接可用的。

【讨论】:

'ranger' R 包更快。【参考方案4】:

我推荐的另一个库是 Weka。它是基于 java 和 lucid.Performance 虽然与 R 相比略有下降。源代码可以从http://www.cs.waikato.ac.nz/ml/weka/ 下载

【讨论】:

以上是关于随机森林代码审查的主要内容,如果未能解决你的问题,请参考以下文章

随机森林算法

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

数据结构-集成算法-随机森林

数据结构-集成算法-随机森林

随机森林引导训练和森林生成

随机森林