使用和理解MATLAB';s TreeBagger(随机森林)方法
我尝试使用MATLAB的TreeBagger方法,它实现了一个随机森林 我得到了一些结果,在训练分类器后可以在MATLAB中进行分类。 然而,我想“看看”这些树,或者想知道分类是如何工作的 例如,让我们运行这个最小的示例,我发现: 最后,我得到了一个存储在“B”中的分类器。 我怎样才能检查这些树?就像查看每个节点一样,查看决策依据的标准(例如特征)? 输入使用和理解MATLAB';s TreeBagger(随机森林)方法,matlab,tree,random-forest,Matlab,Tree,Random Forest,我尝试使用MATLAB的TreeBagger方法,它实现了一个随机森林 我得到了一些结果,在训练分类器后可以在MATLAB中进行分类。 然而,我想“看看”这些树,或者想知道分类是如何工作的 例如,让我们运行这个最小的示例,我发现: 最后,我得到了一个存储在“B”中的分类器。 我怎样才能检查这些树?就像查看每个节点一样,查看决策依据的标准(例如特征)? 输入B返回: B = TreeBagger Ensemble with 20 bagged decision trees:
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中原型化的随机林代码移植到任何其他语言。
然后你需要知道每棵树是如何工作的,这样你就可以用目标语言实现它
我希望你明白我的意思,或者理解我的疑问;)
谢谢你的回答
最好的,
Patrick通过运行
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
要查看多棵树,只需使用循环:
for n=1:30 %number of tree
view(t.Trees{n});
end
for n=1:30 %number of tree
view(t.Trees{n});
end