SVC
具有decision_function
功能,但为什么不随机森林?其次,如何为RandomForestsClassifier模拟decision_function
?
答案 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
相同的结果。方式。