Bagging(Bootstrap Aggregating)是一种集成学习方法,主要用于减少预测模型的方差,从而提高模型的稳定性

这种方法由Leo Breiman在1996年提出,核心思想是从原始数据集通过有放回抽样(即自助采样,Bootstrap Sampling)生成多个子数据集,然后基于这些子数据集训练多个模型(基学习器),最后通过某种方式(如平均或投票)来组合这些模型的预测结果。

Bagging的步骤:
  1. 自助采样:从包含( N )个样本的原始数据集中,有放回地抽取同样大小( N )的样本集合。这个过程会重复( T )次,生成( T )个不同的样本集。
  2. 训练基学习器:对于每个样本集,训练一个基学习器。这些基学习器可以是任何类型的模型,但是通常选择容易过拟合的模型,如未剪枝的决策树。
  3. 预测
  • 分类问题:对于分类任务,每个基学习器对测试样本进行预测,然后通过多数投票决定最终类别。
  • 回归问题:对于回归任务,每个基学习器对测试样本进行预测,然后计算所有预测的平均值作为最终预测。
Bagging的数学公式:

Bagging算法没有特定的“公式”,但我们可以用数学语言描述它的过程和目标。假设我们有( T )个基学习器 什么是bagging?_ci,每个基学习器都基于不同的自助样本集 什么是bagging?_集成学习_02 进行训练,其中( x )是输入特征向量。

对于分类问题,最终预测 什么是bagging?_ci_03 可以表示为:
什么是bagging?_方差_04

  • 什么是bagging?_ci_05: 这是最终的预测输出,即对输入特征向量x的预测类别。
  • 什么是bagging?_ci_06: 表示寻找使得括号内表达式最大的类别c。
  • 什么是bagging?_集成学习_07: 是构建的基学习器(通常是决策树)的总数。
  • 什么是bagging?_机器学习_08: 第t个基学习器对输入x的预测。
  • 什么是bagging?_机器学习_09: 这是一个指示函数(也称为特征函数),当基学习器 什么是bagging?_集成学习_10

对于回归问题,最终预测可以表示为基学习器预测的平均值:
什么是bagging?_ci_11

  • 什么是bagging?_ci_05: 最终的预测输出,即对输入特征向量x的预测数值。
  • 什么是bagging?_集成学习_07: 同上,是构建的基学习器总数。
  • 什么是bagging?_机器学习_08: 第t个基学习器对输入x的预测数值。
误差分解:

Bagging的一个关键点在于它可以减少模型的方差,而不会增加偏差。模型的预测误差可以分解为偏差平方方差两个部分:
什么是bagging?_集成学习_15

  • 什么是bagging?_ci_16: 模型的总预测误差。
  • 什么是bagging?_ci_17: 模型预测的偏差平方,衡量模型预测值与真实值的系统性偏离。
  • 什么是bagging?_机器学习_18: 模型预测的方差,衡量模型预测值在不同训练集上的波动程度。
  • 什么是bagging?_机器学习_19: 不可约误差,是由于噪声或模型无法捕捉的复杂度导致的固有误差,通常无法通过改进模型来减少。

Bagging主要针对 “方差” 这一部分。对于多个独立模型,预测的方差可以通过下面的公式来描述:
什么是bagging?_算法_20

  • 什么是bagging?_ci_21单个模型预测的方差
  • 什么是bagging?_算法_22模型间的相关系数。当模型独立时,什么是bagging?_算法_23方差被最大化减少;当模型完全相关时什么是bagging?_ci_24,方差不会减少。

Bagging通过引入模型多样性(即降低模型间相关性)来减少方差,从而改善整体预测性能。

在实践中,这通常通过使用不同的训练数据子集和/或不同的特征子集(如随机森林中所做)来实现。