我尝试使用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中原型化的随机森林代码移植到任何其他语言。 然后,您需要知道每棵树的工作原理,以便您可以用目标语言实现它。
我希望你明白这一点,或者理解我的疑问;)
感谢您的回答!
最佳, 帕特里克
答案 0 :(得分: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')
答案 1 :(得分:1)