集成学习基础:Bagging 原理与应用

发布于:2025-06-25 ⋅ 阅读:(16) ⋅ 点赞:(0)

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

Bagging 介绍

1. 定义与全称:

  • BaggingBootstrap Aggregating 的缩写,中文常译为 装袋法
  • 它是一种并行式的集成学习方法。
  • 核心目标是通过构建多个基学习器的预测结果进行组合(通常是投票或平均),来获得比单一基学习器更稳定、更准确、泛化能力更强的模型。
  • 其名字直接反映了它的两个关键步骤:Bootstrap(自助采样)Aggregating(聚合)

往期文章推荐:

2. 核心思想:
Bagging 的基本思想非常简单而强大:

  1. 引入随机性: 通过对原始训练数据集进行 有放回的随机抽样(Bootstrap Sampling),创建出多个不同的、略有重叠的子训练集。
  2. 并行训练: 使用这些不同的子训练集,独立地训练出多个 同质的 基学习器。这些学习器通常是同一种算法(例如都是决策树)。
  3. 聚合结果: 对于一个新的预测样本,让所有训练好的基学习器进行预测,然后将它们的预测结果进行聚合
    • 分类任务: 采用 多数投票法(Majority Voting),即选择得票最多的类别作为最终预测结果。
    • 回归任务: 采用 简单平均法(Averaging),即计算所有基学习器预测值的平均值作为最终预测结果。

3. 关键步骤详解:

  • Bootstrap Sampling (自助采样):

    • 假设原始训练集 D 包含 N 个样本。
    • 要训练 T 个基学习器,就需要创建 Tbootstrap 样本集 D_1, D_2, ..., D_T
    • 生成每个 D_t 的过程:
      1. 从原始训练集 D有放回地随机抽取一个样本。
      2. 将该样本放入 D_t 中。
      3. 重复步骤 1 和 2 N 次。这样 D_t 就包含了 N 个样本(注意:因为有放回,某些样本会被多次抽中,而另一些样本可能一次都没被抽中)。
    • 重要特性:
      • 每个 bootstrap 样本集 D_t 的大小与原始训练集 D 相同(N 个样本)。
      • 由于有放回抽样,原始训练集 D 中大约有 63.2% 的样本会出现在任意一个给定的 D_t 中。剩下的约 36.8% 的样本被称为该基学习器的 袋外样本
      • 不同的 bootstrap 样本集之间会有一定的重叠,但也存在差异。
  • Base Learner Training (基学习器训练):

    • 使用第 t 个 bootstrap 样本集 D_t 独立地训练第 t 个基学习器 M_t
    • 基学习器可以是任何学习算法(决策树、神经网络、线性回归等),但决策树因其高方差(不稳定)特性,常作为 Bagging 的首选基学习器(这就是随机森林的基础)。
    • 训练过程是并行的,各个基学习器之间互不干扰。
  • Aggregating (聚合):

    • 分类 (Classification):
      • 对于一个新的输入样本 x,每个基学习器 M_t 预测一个类别标签 y_t
      • 最终的预测结果 y_final 是所有 T 个预测标签 {y_1, y_2, ..., y_T}出现次数最多的那个类别(即多数投票)。
    • 回归 (Regression):
      • 对于一个新的输入样本 x,每个基学习器 M_t 预测一个数值 r_t
      • 最终的预测结果 r_final 是所有 T 个预测值 {r_1, r_2, ..., r_T}算术平均值

4. 为什么 Bagging 有效?

Bagging 的核心价值在于它能够显著降低模型的方差(Variance),从而提高模型的稳定性和泛化能力,尤其对于高方差、低偏差的基学习器(如深度未剪枝的决策树)效果非常显著。

  • 降低方差: 通过在不同的数据子集上训练多个模型,Bagging 减少了模型对训练数据中特定噪声或波动的敏感性。单个模型可能因为训练数据的微小变化而产生很大差异(高方差),但多个模型预测的平均或投票可以抵消这种波动,使得整体预测更加稳定和鲁棒。
  • 轻微增加偏差: 由于每个基学习器只看到原始数据的部分样本(约63.2%),并且可能没有看到一些重要样本(袋外样本),单个基学习器的性能可能略低于在整个数据集上训练的模型(轻微增加偏差)。但是,通过聚合多个模型,这种轻微的偏差增加通常被方差的显著降低所补偿,最终整体模型效果更好。
  • 降低过拟合风险: 通过降低方差,Bagging 有效地减少了模型过拟合训练数据的风险,提高了在未见数据上的泛化能力。

5. 优势:

  • 有效降低方差: 对高方差的基学习器(如决策树)效果尤其显著。
  • 提升模型稳定性与鲁棒性: 对训练数据的小变动不敏感,对噪声和异常值更具抵抗力。
  • 减少过拟合: 提高泛化性能。
  • 并行化: 基学习器的训练相互独立,天然适合并行计算,加速训练。
  • 简单易用: 概念清晰,实现相对直接。
  • 内置验证(利用袋外样本): 袋外样本可以用来评估单个基学习器的性能,它们的预测误差的平均值(袋外误差)可以作为Bagging集成模型泛化误差的一个近似无偏估计,无需额外划分验证集。

6. 局限性:

  • 对高偏差模型提升有限: 如果基学习器本身偏差很高(欠拟合),Bagging 主要降低方差,对整体性能提升不大(偏差问题依然存在)。它不能有效降低偏差。
  • 模型解释性降低: 集成的模型比单个基学习器更难解释。
  • 计算成本: 需要训练多个模型,计算和存储开销大于单个模型。
  • 可能损失部分信息: 每个基学习器只看到部分数据(约63.2%)。

7. 与 Boosting 的区别:

  • 并行 vs 串行: Bagging 是并行训练基学习器;Boosting(如 AdaBoost, GBDT, XGBoost)是串行训练,后续模型重点关注之前模型预测错误的样本。
  • 样本权重: Bagging 中所有样本在抽样时默认权重相同;Boosting 会根据之前模型的预测表现动态调整样本权重,错误样本权重增大。
  • 目标: Bagging 主要降低方差;Boosting 主要降低偏差(并能一定程度降低方差)。
  • 基学习器要求: Bagging 对基学习器要求不高,甚至可以是弱学习器(但效果会打折扣);Boosting 通常要求基学习器是弱学习器(仅比随机猜测略好)。
  • 稳定性: Bagging 模型更稳定;Boosting 模型对数据和参数更敏感,容易过拟合(需仔细调参和正则化)。

8. 典型应用:

  • 随机森林: 这是 Bagging 最著名和最成功的应用。它以决策树为基学习器,并在 Bagging 的基础上额外引入了特征随机性(在节点分裂时随机选择特征子集),进一步增强了多样性和效果。
  • 其他模型的 Bagging 变体: 理论上,任何学习算法都可以作为 Bagging 的基学习器(如 Bagged KNN, Bagged SVMs 等),但决策树因其不稳定性而受益最大。
  • 需要高稳定性模型的场景。

总结:

Bagging 是一种强大且实用的集成学习技术,其核心在于通过 Bootstrap 自助采样生成多样化的训练子集,并行训练多个基学习器,然后通过投票(分类)或平均(回归) 聚合它们的预测结果。它最擅长降低高方差模型的方差,从而提升模型的稳定性、鲁棒性和泛化能力,减少过拟合风险。随机森林是 Bagging 思想的杰出代表和扩展。理解 Bagging 是深入掌握集成学习,特别是随机森林的关键基础。

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!


网站公告

今日签到

点亮在社区的每一天
去签到