RandomForestsClassifier是否有`decision_function`?

时间:2016-12-19 18:32:13

标签: scikit-learn

sklearn中的

SVC具有decision_function功能,但为什么不随机森林?其次,如何为RandomForestsClassifier模拟decision_function

1 个答案:

答案 0 :(得分:0)

是的,它有决策功能。

该函数直接编码到随机树林中。

简单地让 RandomForest 学习者使用这个简单的决策功能策略:

规则a):森林(合奏团)对结果进行投票。

规则b):每个随机树包含一系列决策(由节点表示。

规则c):每个节点包含一个或多个简单条件,根据指定的值,决策制定过程根据该条件从根节点向终端Leaf移动。示例FeatureVECTOR - 输入值。

规则d):Terminal-Leaf包含一个值,特定的随机树呈现给整体投票(Ad-a)。

虽然这不是一个精确的 RandomForestClassifier 树表示(一个节点可以有多个条件 - 检查参数的Scikit文档),但相当好地说明了原则:

  VOTE[12] = IN[0] < 6.85417 ? 1 : 2
                               |   |                                             
                               |   2:[IN[5]<183]                                  
                               |   |                                             
                               |   IN[5] < 183 ? 5 : 6                           
                               |                 |   |                           
                               |                 |   6:[IN[10]<1.00118]           
                               |                 |   |                           
                               |                 |   IN[10] < 1.00118 ? 13 : 14  
                               |                 |                       |    |  
                               |                 |                       |   14: 
                               |                 |                       |    |  
                               |                 |                       |       
                               |                 |                       |       
                               |                 |                               
                               |                 5:[IN[6]<187]                    
                               |                 |                               
                               |                 IN[6] < 187 ? 11 : 12           
                               |                                |    |           
                               1:                                                
                              IN[10] < 1.00054 ? 3 : 4                           
                                                 |   |                           
                                                 |   4:                          
                                                 |   |                           
                                                 |                               
                                                 3:                              

voter[12]:                                                                      
0:[inp0<6.85417] yes=1,no=2,missing=1                                            
1:[inp10<1.00054] yes=3,no=4,missing=3                                           
    3:[inp21<0.974632] yes=7,no=8,missing=7                                      
        7:[inp22<1.01021] yes=15,no=16,missing=15                                
            15:[inp15<0.994931] yes=31,no=32,missing=31                          
                31:[inp12<0.999151] yes=63,no=64,missing=63                      
                    63:[inp23<0.957624] yes=111,no=112,missing=111               
                        111:leaf=0.163636                                        
                        112:leaf=-0.36                                           
                    64:leaf=0.323077                                             
                32:[inp19<0.993949] yes=65,no=66,missing=65                      
                    65:[inp23<0.931146] yes=113,no=114,missing=113               
                        113:leaf=-0                                              
                        114:[inp23<0.972193] yes=161,no=162,missing=161          
                            161:leaf=-0.421782                                   
                            162:leaf=-0.133333                                   
                    66:[inp2<61] yes=115,no=116,missing=115                      
                        115:leaf=0.381818                                        
                        116:leaf=-0.388235                                       
            16:[inp17<0.985065] yes=33,no=34,missing=33                          

如何模拟决策功能?

可以构建另一个 RandomForest - 解释器来遍历所有树,并对结果&#34;整体妥协&#34;进行投票。

这将模仿决策函数(没有其他)并且会提供与 RandomForest 相同的结果。方式。