2015-09-23 234 views
2

我想使用MATLAB的TreeBagger方法,它實現了一個隨機森林。使用和理解MATLAB的TreeBagger(隨機森林)方法

我得到了一些結果,並且可以在訓練分類器後在MATLAB中進行分類。 但是我想「看」樹木,或者想知道分類是如何工作的。

例如,讓我們來運行這個小例子,我發現這裏:Matlab treebagger example

所以,我最終存儲在「B」一classificator。 我如何檢查樹木?就像看看每個節點一樣,看看決定是在哪個標準(例如特徵)上做出的? 進入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中原型化的隨機森林代碼移植到任何其他語言。 然後你需要知道每棵樹是如何工作的,所以你可以用目標語言實現它。

希望你明白了,或者明白我的疑問;)

感謝您的回答!

最佳, 帕特里克

回答

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') 

enter image description here