集成学习进阶:Bagging、Boosting 与 Stacking

集成学习(ensemble learning)的核心思想是「三个臭皮匠顶个诸葛亮」:把多个基学习器的预测组合起来,往往比任意单个模型更可靠。其收益来自误差的多样性——不同模型在不同样本上犯错,组合后能相互抵消一部分错误。

Bagging:并行降低方差

Bagging(Bootstrap Aggregating)对训练集做有放回抽样,得到多个子训练集,各自训练一个基模型,预测时分类取多数投票、回归取平均。随机森林就是典型代表:它在 Bagging 基础上进一步对特征随机抽样,进一步降低树之间的相关性。由于基模型并行独立,Bagging 主要压制方差,对高方差、易过拟合的模型(如深决策树)效果明显。

Boosting:串行降低偏差

Boosting 串行训练,每一轮都更关注上一轮被分错的样本,把弱学习器逐步提升为强学习器。AdaBoost 用样本权重刻画关注度;梯度提升(GBDT、XGBoost、LightGBM)则把损失函数的负梯度作为「伪残差」去拟合。Boosting 偏向降低偏差,但对噪声与异常值更敏感,需要早停与正则来防止过拟合。XGBoost 论文与文档给出了系统的工程优化与正则设计。

Stacking:用模型学组合

Stacking 不再用简单投票或平均,而是训练一个「元学习器」来学习如何最好地组合基学习器的输出。通常把基模型在交叉验证集上的预测作为元特征,再训练二层模型。相比前两者,Stacking 更灵活也更易过拟合,需严格用 out-of-fold 预测避免信息泄露,且基模型间应有足够多样性。

如何选型

数据噪声大、追求稳定可并行时优先随机森林等 Bagging;结构化表格数据上梯度提升类通常精度领先;竞赛级追求极限时可用 Stacking。无论哪种,基模型的多样性是关键:完全相同的模型做平均毫无收益,差异来自不同算法、不同特征子集或不同随机种子。

小结

集成学习靠组合多个基模型提升稳健性与精度。Bagging 并行降方差(代表随机森林),Boosting 串行降偏差(代表 XGBoost 等梯度提升),Stacking 用元学习器学组合。落地时以基模型多样性为前提,并按数据噪声与算力约束选型。

参考与延伸阅读

本文累计阅读