matlab - 使用和理解 MATLAB 的 TreeBagger(随机森林)方法

标签 matlab tree random-forest

我正在尝试使用 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')

enter image description here

关于matlab - 使用和理解 MATLAB 的 TreeBagger(随机森林)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32740212/

相关文章:

matlab - 在矩阵中包含预定行号的 NaN 行。

java - 给定一个位数组,如何在位 Trie 中找到最近的签名?

Python - Scikit 发现分类变量的变量重要性

matlab - Matlab 如何在其欧氏距离权重函数中应用权重?

MATLAB 编译器处理来自不相关工具箱的 mcc.enc

java - 查找循环依赖

typescript - 遍历嵌套的 JSON 子对象

machine-learning - 能够切换数据集的随机森林算法

r - 如何替换包 randomForest r 中的引导步骤

python - 使用 system() 从 MATLAB 调用 Python : issue importing non-standard Python libraries