怎么理解随机森林的参数 max_features与bootstrap?

怎么理解随机森林的参数 max_features与bootstrap?

max_features​ 与 bootstrap

这两者是随机森林中引入随机性的两个独立但协同的机制。

  1. bootstrap(引导采样):

    • 作用: 控制训练数据的随机性。

    • 机制: 从原始训练集中有放回地抽取样本子集来训练每棵决策树。这意味着一些样本可能被多次抽取,而另一些样本可能根本没有被抽取(这些未被抽取的样本就是"袋外样本"OOB)。

    • 目的:

      • 为每棵树提供一个略微不同的训练视角,增加树的多样性。
      • 降低过拟合的风险,因为每棵树都不是在整个数据集上训练的。
      • 允许进行方便的袋外误差估计 (OOB Error Estimation) ,即使用未被抽样的样本来评估模型的泛化能力,而无需单独的验证集。
    • 在随机森林中: 默认设置为 True​。

  2. max_features(特征子集随机选择):

    • 作用: 控制特征空间的随机性。

    • 机制: 在每棵决策树的每个分裂点,只从所有可用特征中随机选择一个子集,然后算法在这个子集中寻找最佳分裂特征。

    • 目的:

      • 进一步降低树之间的相关性,即使数据集中存在少数几个非常强的预测特征。
      • 强迫树去探索和利用更多的特征,增加模型的鲁棒性。
    • 在随机森林中: 默认设置为 sqrt​(分类)或 1.0​/None​(回归)。

两者协同作用:

  • bootstrap 确保了每棵树是在不同的数据样本上学习的。
  • max_features 确保了每棵树在决策时是基于不同的特征视角来学习的。

这两重随机性共同作用,使得随机森林中的每棵树都非常"个性化",它们各自的过拟合和错误模式是独立的。当这些多样化的个体树的预测结果被聚合时,它们的误差会相互抵消,从而极大地降低了整个随机森林模型的方差,使其成为一种非常强大且泛化能力优秀的机器学习算法。

举个例子, bootstrap​ 就像是给每个学生(决策树)分发不同的教材版本,而 max_features​ 就像是要求每个学生在答题时,只能从所有题目中随机选择一部分来思考。这样,每个学生的知识体系和答题思路都独具一格,当他们最终的答案汇总时,就能得到一个非常全面和准确的最终结果。

为什么 max_features​ 值越小会产生"方差减少,偏差增加"这种结果?

  1. max_features值越小 -> 树的多样性增加 -> 集成模型方差减少

    • max_features​ 值很小(例如 sqrt(n_features)​ 或 log2(n_features)​)时,每棵决策树在构建过程中,在每个分裂点都只能从非常有限的随机特征子集中选择最佳分裂特征。

    • 这意味着:

      • 树之间的相关性降低: 即使数据中存在少数几个"非常强"的特征,每棵树也并非总能在分裂时选中它们。这迫使不同的树去探索和利用其他次优但依然有用的特征,从而导致每棵树的结构和决策规则大相径庭,它们之间的相关性大大降低。
      • 个体树的过拟合方式不同: 即使每棵树都完全生长并过拟合了自己的训练子集,它们过拟合的"方式"和"方向"也各不相同。
    • 结果: 当这些多样化且相关性低的个体树的预测结果被集成(平均或投票) 时,它们各自的过拟合误差和随机波动会相互抵消。这种"集体智慧"能够显著降低集成模型的总体方差,使其对训练数据的细微变化不再那么敏感,从而提高了模型的泛化能力。

  2. max_features值越小 -> 单棵树的预测能力下降 -> 单棵树偏差增加

    • max_features​ 值很小时,单棵决策树在每次分裂时,可能无法"看到"所有最有信息量或最具区分度的特征。它被迫从一个有限的、随机选择的子集中进行选择。

    • 这意味着:

      • 局部最优而不是全局最优: 单棵树的每个分裂点可能无法找到理论上全局最佳的分裂方式,因为它没有机会考虑所有特征。它只能在有限的选项中选择"相对最佳"。
      • 拟合能力受限: 这种限制使得单棵树的学习能力受到了一定程度的"约束"。它可能无法完全捕捉到训练数据中所有复杂的模式,从而导致其对训练数据本身的拟合能力有所下降。
    • 结果: 单棵树的预测可能会偏离真实值(即使在训练数据上),这体现为单棵树的偏差增加

总结:

  • max_features 越小,个体树越"随机"、"独特",它们之间关联越小,集体预测时互相抵消的误差越多,因此方差减少
  • max_features 越小,个体树在训练时越"盲人摸象",无法看到全局最佳特征,导致单棵树的拟合能力受限,因此偏差增加

总结

随机森林的成功之处在于,它巧妙地利用了这种权衡:通过牺牲单棵树的少许偏差来换取集成模型方差的显著降低,从而实现了整体泛化性能的提升。