知识框架

集成学习通过组合多个学习器获得更稳定或更强的模型。重点包括个体学习器、多样性、投票与平均、Boosting、AdaBoost、梯度提升树、Bagging、随机森林、Stacking、误差-分歧分解。

个体与集成

集成有效通常需要两个条件:

  • 个体学习器不能太差,应有一定准确性。
  • 个体学习器之间应有差异,即多样性。

常见组合方式:

  • 分类:多数投票、加权投票、概率平均。
  • 回归:简单平均、加权平均。
  • Stacking:把初级学习器输出作为新特征,训练次级学习器。

AdaBoost

初始化样本权重:

\[ D_1(i)=\frac{1}{m}. \]

第 $t$ 轮训练弱分类器 $h_t$,错误率

\[ \epsilon_t=\sum_{i=1}^{m}D_t(i)\mathbb{I}(h_t(\mathbf{x}_i)\ne y_i). \]

弱分类器权重:

\[ \alpha_t=\frac{1}{2}\ln\frac{1-\epsilon_t}{\epsilon_t}. \]

样本权重更新:

\[ D_{t+1}(i)= \frac{D_t(i)\exp(-\alpha_t y_i h_t(\mathbf{x}_i))}{Z_t}. \]

最终分类器:

\[ H(\mathbf{x})=\operatorname{sign}\left(\sum_{t=1}^{T}\alpha_t h_t(\mathbf{x})\right). \]

被错分样本满足 $y_i h_t(\mathbf{x}_i)=-1$,其权重会上升;下一轮学习更关注这些样本。

梯度提升树

Boosting 是串行集成,后一轮试图修正前一轮不足。平方损失下,提升树拟合残差;一般损失下,拟合损失函数对当前模型输出的负梯度:

\[ r_{ti}=-\left[ \frac{\partial \ell(y_i,F(\mathbf{x}_i))} {\partial F(\mathbf{x}_i)} \right]_{F=F_{t-1}}. \]

GBDT、XGBoost、LightGBM 都属于梯度提升树家族的工程化实现。

Bagging 与随机森林

Bagging 对训练集进行自助采样,训练多个基学习器,再投票或平均。其主要作用是降低方差。

若每个基学习器方差为 $\sigma^2$,两两相关系数为 $\rho$,$T$ 个学习器平均后的方差为

\[ \operatorname{Var}(\bar h) =\rho\sigma^2+\frac{1-\rho}{T}\sigma^2. \]

因此 $T$ 越大、$\rho$ 越低,方差降低越明显。

随机森林在 Bagging 基础上进一步引入特征随机性:每个结点只在随机子特征集合中选择最优划分,从而降低树之间相关性。

多样性

多样性来源包括:

  • 数据扰动:自助采样、重采样。
  • 特征扰动:随机子空间、随机森林。
  • 算法扰动:不同模型、不同超参数。
  • 输出扰动:不同阈值或不同组合策略。

误差-分歧分解体现了集成性能来自个体准确性和个体差异性的平衡。

Boosting 与 Bagging 对比

  • Boosting 串行训练,强调纠错,常降低偏差,也可能降低方差。
  • Bagging 并行训练,强调扰动平均,主要降低方差。
  • AdaBoost 对噪声和异常值较敏感;随机森林通常更稳健。
  • Boosting 中弱学习器常较浅;Bagging/随机森林中基学习器可用深树。

常见问法

  1. 给 AdaBoost 第一轮预测结果,计算错误率、弱学习器权重和新样本分布。
  2. 说明 AdaBoost 的自适应体现在哪里。
  3. 给 $\sigma^2,\rho,T$,计算 Bagging 集成方差,并解释学习器数量和相关性影响。
  4. 比较 Bagging、Boosting、随机森林和 Stacking。
  5. 从偏差-方差角度分析逻辑回归、SVM、随机森林等模型。