我正在尝试使用 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 中原型(prototype)化的随机森林代码移植到任何其他语言。 然后你需要知道每棵树是如何工作的,以便你可以用目标语言实现它。
我希望您能明白我的意思,或者理解我的问题;)
感谢您的解答!
最好, 帕特里克
最佳答案
了解如何通过运行 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')
关于matlab - 使用和理解 MATLAB 的 TreeBagger(随机森林)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32740212/