随机森林代码审查
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 I
ll 有进一步的问题。很高兴见到您并感谢您的建议。
我建议您在继续之前非常构建和测试决策。这也为您提供了一个思考设计的好机会。【参考方案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/ 下载
【讨论】:
以上是关于随机森林代码审查的主要内容,如果未能解决你的问题,请参考以下文章