← 返回题目列表

为什么 Bagging 主要降方差、Boosting 主要降偏差?

高频 困难 第 10 / 25 题 更新于 2026/09/25
集成学习偏差方差BaggingBoosting
学习 AI 实战项目

简化版

Bagging 对随机化训练出的多个预测取平均,若单模型方差为 σ²、两两相关近似为 ρ,平均方差约为 ρσ²+(1-ρ)σ²/B,所以它常用于降低深树等不稳定模型的方差;偏差也可能随重采样和非线性学习器改变,并非严格不变。Boosting 串行沿当前损失方向增加模型,常显著缓解弱模型的欠拟合,但训练误差下降不等于统计偏差的定义,方差也会随轮数与树深改变。“Bagging 主降方差、Boosting 常降偏差”是机制概括,不是只改变单一项的定律。

详细版

在平方损失回归、对训练集随机性取期望等条件下,可写“期望预测误差 = 偏差² + 方差 + 不可约噪声”。分类和其他损失不能不加说明地直接套同一等式。

Bagging 降方差的数学直觉:

n 个模型平均后的方差 ≈ ρσ² + (1-ρ)·σ²/n
   σ² = 单模型方差,  ρ = 模型间相关系数
  • n↑ → 第二项↓;ρ↓(模型越独立)→ 第一项↓。
  • 独立(ρ→0)时方差约降到 σ²/n;平均后的偏差需由学习算法期望另算,常变化较小但没有无条件不变保证。
  • 所以 Bagging 削方差、不削偏差 → 配强模型(深树,低偏差高方差)。

Boosting 降偏差的直觉:

  • 每轮拟合残差/负梯度,通常降低经验损失并提升表达能力;是否降低统计偏差、何时方差上升要用重复抽样或验证表现判断。
  • 主要削偏差,方差控制得不好反而可能升 → 配弱模型(浅树,高偏差低方差),靠学习率/早停控方差。

完整版教学

一、先限定偏差—方差分解的适用条件

在回归平方损失下,对固定输入点并对训练集抽样与观测噪声取期望,预测误差可分解为三部分:

  • 偏差:模型系统性地学不准(太简单/欠拟合)。
  • 方差:模型对训练数据太敏感、不稳定(太复杂/过拟合)。
  • 噪声:数据本身的随机性,不可消除。

这套分解提供直觉,但分类 0-1 损失没有同样简单的加法形式。Bagging 通常以平均抑制方差,Boosting 通常以加法优化改善欠拟合;两者都会同时影响偏差和方差。

二、Bagging 为什么降方差——独立平均的威力

Bagging 的做法是训练 n 个用不同数据子集(自助采样) 的模型,预测时取平均。关键在于「多个随机变量取平均,方差会变小」这个统计事实。

理想情况(完全独立):设每个模型的预测方差都是 σ²,且相互独立。它们的平均值的方差是:

Var(平均) = Var( (X₁+X₂+...+Xₙ)/n ) = σ²/n

在这个理想等方差、独立预测的计算里,平均方差降到 σ²/n。偏差是否不变还要求各预测器的期望与所比较基模型一致;bootstrap 后训练非线性学习器通常只能说偏差可能近似不变,而不是定理。

现实情况(不完全独立):模型之间有相关性 ρ(因为用的是同一份数据的子集,难免相似)。更真实的方差公式是:

Var(平均) ≈ ρσ² + (1-ρ)·σ²/n
  • 第二项 (1-ρ)σ²/n 随 n 增大趋于 0。
  • 第一项 ρσ² 是方差下降的天花板——只要模型不独立(ρ>0),方差就降不到 0。
  • 要突破天花板,必须降低 ρ(让模型更独立)——这正是随机森林在 Bagging 基础上加「特征随机」的原因:进一步去相关、把 ρ 压小、方差降得更多。

结论:Bagging 的核心收益来自对不完全相关预测的平均,因此常搭配较深、低偏差但高方差的树。基树仍可设置最小叶样本、深度等约束;“随机森林一定使用完全不剪枝树”不是定义,应按验证性能和资源选择。

三、Boosting 为什么降偏差——串行纠错的累积

Boosting 完全不同:它串行训练,每个新模型专门去修正前面模型犯的错(AdaBoost 加大错分样本权重,GBDT 拟合残差/负梯度)。

想象初始模型很弱、欠拟合(高偏差)。Boosting 每加一个模型,就把「当前整体还没拟合好的部分」再学一点:

F₀ 欠拟合(偏差大)
F₁ = F₀ + 拟合F₀的残差  → 偏差减小
F₂ = F₁ + 拟合F₁的残差  → 偏差再减小
...  经验损失通常下降,验证损失未必单调

每一轮都增加函数容量并尝试降低当前经验损失,常把欠拟合的浅树组合成更强模型。训练误差不是偏差;随着轮数增加,统计偏差可能下降,方差也可能上升,因此不能说 Boosting “专削偏差”。

因此它要搭配偏差大但方差小的弱模型——很浅的树(弱学习器)。为什么不用强模型?因为 Boosting 本来就会把偏差降下去,如果基学习器太强(本身方差就大),串行叠加会迅速过拟合、方差失控。用弱模型才能让 Boosting 稳稳地一步步降偏差。

四、副作用:Boosting 的方差怎么办

Boosting 主要降偏差,但如果不加控制,串行拟合残差会不断增加模型复杂度、方差可能上升甚至过拟合(把残差里的噪声也学了)。所以 Boosting 需要额外手段控方差:

  • 学习率(shrinkage):每棵树只走一小步,减缓过拟合。
  • 早停:验证误差不再下降就停,防止树太多。
  • 子采样、列采样、正则:借鉴 Bagging 思想增加多样性、抑制方差。

Bagging 的平均机制通常缓解高方差;固定基学习器分布下增加模型数会让平均趋于稳定,但树间相关、系统偏差、数据泄漏和计算成本仍需检查。

五、一张表把逻辑串起来

BaggingBoosting
手段独立模型平均串行拟合残差
主削方差偏差
配什么基学习器强模型(深树,低偏差高方差)弱模型(浅树,高偏差低方差)
为什么这样配方差交给平均消,偏差保持低偏差交给串行叠加消,方差要小免得过拟合
过拟合天生抗(加模型更稳)需学习率/早停控制

六、常见追问

  • Bagging 能降偏差吗? 主要作用常是降方差,但 bootstrap 分布和非线性拟合会让偏差也改变;应通过学习曲线与重复验证判断。
  • Boosting 能降方差吗? 主要降偏差;方差靠学习率、早停、子采样等间接控制,控不好会过拟合。
  • 为什么随机森林用深树、GBDT 用浅树? 就是这题的结论:Bagging 削方差配低偏差深树,Boosting 削偏差配弱的浅树。
  • 随机森林的特征随机为什么重要? 降低树间相关 ρ,突破 ρσ² 的方差下降天花板。
  • 能不能既降偏差又降方差? 集成组合、加正则、子采样等能同时缓解两者,但两大流派各有主攻方向。

七、把相关系数代入方差公式

100 个基模型单个方差 σ²=4。若误差独立,平均方差为 4/100=0.04;若两两相关 ρ=0.3,则方差约为 0.3×4+0.7×4/100=1.228。数量从 100 再加到 1000 时只能降到约 1.203,说明降低相关性往往比无止境加树更重要。

E[(y - f_hat(x))^2] = Bias^2 + Variance + irreducible_noise
Var(mean) = rho*sigma^2 + (1-rho)*sigma^2/B
Boosting changes both bias and variance; 'mainly' is an empirical tendency
对象/方案核心机制选择或风险
深单树偏差较低、方差较高适合用 Bagging 平均
浅弱树偏差较高、单棵方差较低适合逐轮 Boosting
相关树平均方差下限约 ρσ²特征随机用于降低 ρ
诊断学习曲线 → 大训练/验证间隙:高方差
              → 双方都差:高偏差
              → 选择去相关平均或逐步加法拟合

记忆钩子:“Bagging 降方差、Boosting 降偏差”是主要机制,不是说另一项永远不变。

八、常见误区与追问

  • 误区:只要增加 Bagging 模型数,方差最终一定到 0。 相关误差留下约 ρσ² 的下限。
  • 误区:Boosting 只降偏差不会增大方差。 轮数、树复杂度和噪声都可能让方差上升。
  • 追问:为什么随机森林要做特征随机? 它牺牲部分单树强度来降低树间相关性。
  • 追问:不可约噪声能靠集成消除吗? 不能,它来自观测机制或遗漏信息。
  • 追问:如何实证判断偏差还是方差? 结合训练与验证误差、学习曲线和重复交叉验证判断。

九、加强记忆

平方损失回归下的偏差—方差分解需要对训练集随机性取期望,不能把单次训练误差当偏差。Bagging 对相关预测求平均,方差约为 ρσ²+(1-ρ)σ²/B,因此树数和去相关都重要,偏差则可能近似不变也可能改变。Boosting 串行拟合损失的改进方向,常降低欠拟合,却也随轮数增加容量和方差。深树用于 Bagging、浅树配学习率用于 Boosting 是常见工程起点,最终仍要用同一验证流程检查偏差、方差和噪声敏感性。