使用和理解 MATLAB 的 TreeBagger(一种随机森林)方法
Using and understanding MATLAB's TreeBagger (a random forest) method
我正在尝试使用 MATLAB 的 TreeBagger 方法,它实现了随机森林。
我得到了一些结果,可以在训练分类器后在 MATLAB 中进行分类。
但是我想 "see" 树,或者想知道分类是如何工作的。
例如,让我们 运行 这个最小的例子,我在这里找到:Matlab treebagger example
所以,我最终得到了一个存储在 "B" 中的分类器。
我怎样才能检查树木?就像查看每个节点一样,看看根据哪些标准(例如功能)做出决定?
输入 B
returns:
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 中制作原型的随机森林代码移植到任何其他语言。
然后你需要知道每棵树是如何工作的,这样你才能用目标语言实现它。
希望你明白我的意思,或者理解我的查询;)
感谢解答!
最好的,
帕特里克
通过 运行 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')
要查看多棵树,只需使用循环即可:
for n=1:30 %number of tree
view(t.Trees{n});
end
我正在尝试使用 MATLAB 的 TreeBagger 方法,它实现了随机森林。
我得到了一些结果,可以在训练分类器后在 MATLAB 中进行分类。 但是我想 "see" 树,或者想知道分类是如何工作的。
例如,让我们 运行 这个最小的例子,我在这里找到:Matlab treebagger example
所以,我最终得到了一个存储在 "B" 中的分类器。
我怎样才能检查树木?就像查看每个节点一样,看看根据哪些标准(例如功能)做出决定?
输入 B
returns:
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 中制作原型的随机森林代码移植到任何其他语言。 然后你需要知道每棵树是如何工作的,这样你才能用目标语言实现它。
希望你明白我的意思,或者理解我的查询;)
感谢解答!
最好的, 帕特里克
通过 运行 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')
要查看多棵树,只需使用循环即可:
for n=1:30 %number of tree
view(t.Trees{n});
end