【问题标题】:R: What happens if randomForest() generates boostrapped constants?R:如果随机 Forest() 生成自举常数会发生什么?
【发布时间】:2021-07-17 06:43:06
【问题描述】:

randomForest() 中实现的算法生成自举数据。它可能会生成零变化的变量。在这种情况下,这些自举常量是在选择 mtry 候选变量之前被删除,还是在被提取后从候选变量池中删除?

与此相关,我们可以想象所有自举变量都呈现零变化的情况。包在这种边缘情况下会做什么?

【问题讨论】:

    标签: r machine-learning random-forest imputation


    【解决方案1】:

    根据 Breiman (2001) 的原始论文,没有什么可以排除 bootstrap 可能生成方差接近零的变量的可能性。但是...,这在随机森林算法的较量中并不是什么大问题,它基于大量相互弱相关的决策树的生长。

    在随机森林中,装袋(引导聚合)过程用于降低那些具有高方差的算法的方差,例如决策树(例如 CART)。决策树对训练它们的特定数据很敏感。如果训练数据发生变化(例如,在训练数据的子集上训练一棵树),则生成的决策树可能会完全不同,反过来,预测也可能会完全不同。

    但是,在使用决策树进行 bagging 时,我们不太担心单个树会过度拟合训练数据。这就是为什么单个决策树会变得很深(例如,树的每个叶节点上的训练样本很少)并且树不会被修剪。这些树将具有高方差和低偏差。这些是使用 bagging 组合预测时子模型的重要特征。

    在处理像 CART 这样的袋装决策树时,至少存在一个问题:它们是贪婪的。他们使用最小化错误的贪心算法来选择要拆分的变量。因此,即使使用 Bagging,决策树也可能具有很多结构相似性,进而在其预测中具有高度相关性。

    Breiman 是否在这里找到了解决方案,通过在树的构造中注入更多的随机性。在 CART 中,在选择分割点时,允许学习算法查看所有变量和所有变量值,以选择最佳分割点。随机森林算法改变了这个过程,因此学习算法被限制在随机样本的特征中进行搜索(这个数字由mtry参数选择)。

    所有这一切都说明,即使产生了一个零方差的变量,该算法也是专门为抵抗单个决策树的弱点而构建的。综上所述,即使产生了零方差变量,该算法也是专门为抵抗单个决策树的弱点而构建的。在投票过程中,单棵树的错误预测被森林的其余部分所抑制。

    这不是回答您的问题“算法如何处理接近零的方差预测变量”,但它可以说它实际上不是随机森林中的真正问题

    【讨论】:

    • 是的,问题很简单,如果 mtry 是采样的变量数,那么方差为 0 的变量会被丢弃,这样实际的变量数是
    猜你喜欢
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多