Bagging(Bootstrap Aggregating)是一种集成学习方法
,主要用于减少预测模型的方差
,从而提高模型的稳定性
。
这种方法由Leo Breiman在1996年提出,核心思想是从原始数据集通过有放回
抽样(即自助采样
,Bootstrap Sampling)生成多个子数据集
,然后基于这些子数据集训练多个模型(基学习器)
,最后通过某种方式(如平均或投票)来组合
这些模型的预测结果。
Bagging的步骤:
- 自助采样:从包含( N )个样本的
原始数据集
中,有放回
地抽取同样大小( N )的样本集合。这个过程会重复( T )次,生成( T )个不同的样本集。 - 训练基学习器:对于
每个样本集,训练一个基学习器
。这些基学习器可以是任何类型的模型
,但是通常选择容易过拟合的模型,如未剪枝的决策树。
- 预测:
- 分类问题:对于
分类任务
,每个基学习器对测试样本进行预测,然后通过多数投票决定最终类别。
- 回归问题:对于
回归任务
,每个基学习器对测试样本进行预测,然后计算所有预测的平均值作为最终预测。
Bagging的数学公式:
Bagging算法没有特定的“公式”,但我们可以用数学语言描述它的过程和目标。假设我们有( T )个基学习器
,每个
基学习器
都基于不同的自助样本集 进行训练,其中( x )是
输入特征向量。
对于分类问题
,最终预测 可以表示为:
: 这是最终的预测输出,即对输入特征向量x的
预测类别。
: 表示寻找
使得括号内表达式最大
的类别c。: 是构建的
基学习器(通常是决策树)的总数。
:
第t个基学习器对输入x的预测。
: 这是一个
指示函数
(也称为特征函数),当基学习器
对于回归问题
,最终预测可以表示为基学习器预测的平均值:
: 最终的预测输出,即对输入特征向量x的
预测数值。
: 同上,是构建的
基学习器总数。
:
第t个基学习器对输入x的预测数值。
误差分解:
Bagging的一个关键点在于它可以减少模型的方差
,而不会增加偏差
。模型的预测误差可以分解为偏差平方
和方差
两个部分:
: 模型的
总预测误差。
: 模型预测的
偏差平方
,衡量模型预测值与真实值的系统性偏离。: 模型
预测的方差
,衡量模型预测值在不同训练集上的波动程度。:
不可约误差
,是由于噪声
或模型无法捕捉
的复杂度导致的固有误差,通常无法通过改进模型来减少。
Bagging主要针对 “方差” 这一部分。对于多个独立模型,预测的方差可以通过下面的公式来描述:
是
单个模型
预测的方差是
模型间的相关系数
。当模型独立时,,
方差被最大化减少
;当模型完全相关时
,,方差不会减少。
Bagging通过引入模型多样性(即降低模型间相关性)来减少方差
,从而改善整体预测性能。
在实践中,这通常通过使用不同的训练数据子集和/或不同的特征子集(如随机森林中所做)来实现。