标准回答
Bagging(Bootstrap Aggregating)
对训练集做有放回采样得到多个子集,并行训练多个同类弱模型,分类用投票、回归用平均。各模型相互独立,聚合降低了方差,对训练集扰动更稳健。随机森林是代表,它在 Bagging 基础上再对特征随机采样,进一步去相关、抑制过拟合,且天然可并行。
Boosting
串行训练:每一轮根据前面模型的错误调整重点——AdaBoost 提高被分错样本的权重,GBDT 让新树去拟合当前的残差(负梯度)。模型逐步纠错,主要降低偏差,能把弱学习器提升为强学习器。代表有 GBDT、XGBoost、LightGBM,精度高但对噪声敏感、需控制树深/学习率/迭代数防过拟合。
核心差异
并行 vs 串行;样本等权采样 vs 关注难例;主攻降方差 vs 主攻降偏差。
常见误区
⚠️ 常见踩坑
别说「Boosting 一定比 Bagging 强」——Boosting 精度上限高但更易受噪声/异常值影响、调参更难、不易并行;Bagging 更稳健省心。两者优化目标不同(方差 vs 偏差),按基模型特性选择。
追问
追问 1:随机森林相比普通 Bagging 多做了什么?
随机森林在 Bagging 的样本采样之外,每次分裂只从随机子集的特征中选最优分裂点。这进一步降低树之间的相关性,使平均后方差下降更明显、泛化更好。
追问 2:GBDT 如何防止过拟合?
常用手段包括:限制树深和叶子数、调小学习率(shrinkage)并增加树数、行/列子采样、L1/L2 正则(XGBoost 内置),以及用验证集做早停。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。