【问题标题】:Using and understanding MATLAB's TreeBagger (a random forest) method使用和理解 MATLAB 的 TreeBagger(随机森林)方法
【发布时间】:2015-12-20 19:24:49
【问题描述】:

我正在尝试使用 MATLAB 的 TreeBagger 方法,该方法实现了随机森林。

我得到了一些结果,并且可以在训练分类器后在 MATLAB 中进行分类。 但是我想“看到”这些树,或者想知道分类是如何工作的。

例如,让我们运行这个最小的例子,我在这里找到:Matlab treebagger example

所以,我最终得到了一个存储在“B”中的分类器。 如何检查树木?就像查看每个节点一样,看看是根据哪些标准(例如特征)做出决定的? 输入B 返回:

B = 

  TreeBagger
Ensemble with 20 bagged decision trees:
           Training X:                [6x2]
           Training Y:                [6x1]
               Method:       classification
                Nvars:                    2
         NVarToSample:                    2
              MinLeaf:                    1
                FBoot:                    1
SampleWithReplacement:                    1
 ComputeOOBPrediction:                    0
     ComputeOOBVarImp:                    0
            Proximity:                   []
           ClassNames:             '0'             '1'

我看不到像B.trees 这样的东西。

还有一个后续问题是: 如何将您在 MATLAB 中原型化的随机森林代码移植到任何其他语言。 然后你需要知道每棵树是如何工作的,这样你才能用目标语言实现它。

我希望你明白我的意思,或者理解我的问题;)

感谢您的回答!

最好, 帕特里克

【问题讨论】:

    标签: matlab tree random-forest


    【解决方案1】:

    查看多棵树只需使用循环:

    for n=1:30 %number of tree
    view(t.Trees{n});
    end
    

    you can find the source here

    【讨论】:

      【解决方案2】:

      通过运行view() 命令了解如何检查树木。例如。检查示例的第一棵树:

      >> view(B.Trees{1})
      Decision tree for classification
      1 if x2<650 then node 2 elseif x2>=650 then node 3 else 0
      2 if x1<4.5 then node 4 elseif x1>=4.5 then node 5 else 1
      3 class = 0
      4 class = 0
      5 class = 1
      

      通过向view() 命令传递更多参数,树也可以可视化:

      view(B.Trees{1},'mode','graph')
      

      【讨论】:

        猜你喜欢
        • 2013-06-18
        • 2012-12-21
        • 1970-01-01
        • 2016-08-10
        • 2015-02-12
        • 2019-12-25
        • 1970-01-01
        • 1970-01-01
        • 2015-07-30
        相关资源
        最近更新 更多