随机森林代码审查

时间:2011-05-27 22:07:32

标签: matlab machine-learning fortran decision-tree random-forest

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

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

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


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

4 个答案:

答案 0 :(得分:5)

你看过这些图书馆吗?

答案 1 :(得分:2)

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

您会:

  1. 学到很多东西
  2. 能够随心所欲地修改它们
  3. 最终继续与他们一起探索新领域
  4. 我已经从头开始实现它们,所以一旦你发布了一些自己的代码,我就可以提供帮助。但我不认为本网站上的任何人都会为您编写代码。

    需要努力吗?是。你会以更多的知识和能力走出它吗? Undoubtably。

答案 2 :(得分:1)

R中有一个很好的库叫做randomForest。它基于Fortran中Breiman的最初实现,但现在主要用C语言记录。

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

您可以直接使用您所讨论的主要参数(树深度,要测试的要素数量......)。

答案 3 :(得分:0)

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