【问题标题】:TreeBagger (Random Forests) Parameters in MATLABMATLAB 中的 TreeBagger(随机森林)参数
【发布时间】:2013-06-18 13:32:37
【问题描述】:

当我将 MATLAB 的随机森林实现(TreeBagger 类)与 OpenCV 实现(随机树类)进行比较时,我发现后者中存在的几个参数在前者中不存在。

感兴趣的参数是树的最大深度(max_depth)和max_categories。

有谁知道如何在 MATLAB 中访问这些参数?

【问题讨论】:

    标签: matlab opencv machine-learning random-forest supervised-learning


    【解决方案1】:

    这些参数在袋装决策树的 MATLAB 实现中不可用,TreeBagger

    【讨论】:

    • 感谢 Sam 的回答,但我已经知道 TreeBagger 类不提供有关上述两个参数的任何信息(这就是我发布此问题的原因)。我想知道这是如何在 Matlab 中实现的,因为这些参数在运行算法时非常重要。
    • “这是如何安排的”是什么意思?您是否在询问 MathWorks 计划何时(如果)实施这些参数?我不知道有任何实施它们的计划,如果 MathWorks 确实打算这样做,我认为他们不会提前公布该意图。请记住,TreeBagger 不是随机森林,它是袋装决策树的实现,可以使其行为方式与随机森林非常相似。没有理由它必须具有与另一个实现完全相同的参数。
    • 无论如何,我特别感兴趣的参数是树的最大深度。它会影响他们是否过度拟合的能力。这个参数是固定的还是从一个迭代改变到另一个?我觉得奇怪的是 MATHWORKS 没有带来处理它的方法。
    • 这对我来说似乎并不奇怪 - 有更好的方法来控制树的复杂性,而不是简单地在特定深度切割它(例如修剪,或限制每棵树的观察次数)叶节点)。无论如何,不​​管你觉得奇怪与否,你原来的问题的答案是TreeBagger中没有这些参数,即使它们在OpenCV中也是如此。
    【解决方案2】:

    命令B.Trees{1}.NumNodes 将返回第一棵树的节点数,其中B 是您的模型。

    并根据this paper计算二叉树的平均高度:

    Hight = sqrt(2*pi*n),n为节点数。

    请参阅第 2 页,它非常接近 .pdf 的底部,因为它是颠倒的。

    但是,我对这个公式有疑问...

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 2018-03-11
      • 2015-01-08
      • 2019-05-01
      • 2022-01-18
      • 2018-09-08
      • 2014-03-23
      • 2016-07-23
      • 2021-03-30
      相关资源
      最近更新 更多