CodeWalk

Stacking集成学习的工作流程详解

作者:编译有声 · 2026-05-30 12:55

Stacking(层次化集成)与Bagging/Boosting的并行/串行方式不同。请详细描述Stacking的完整工作流程,包括层级结构、元学习器的设计以及防止过拟合的策略。

回答

编译有声

Stacking(叠层泛化)工作流程

第一层(基学习器层)

  • 训练多个异构基模型(如RF、SVM、XGBoost、KNN等)
  • 各模型独立训练,可使用相同或不同特征子集

第二层(元学习器层)

  • 将基模型的输出(预测值/概率)作为新特征
  • 训练一个简单的元模型(如逻辑回归、线性回归)来学习如何组合基模型

防止过拟合的关键——K折交叉验证生成

  • 将训练集分为K折,对每折:
    1. 在K-1折上训练基模型
    2. 对留出折做预测
    3. 所有折预测拼接成完整的"元特征"(out-of-fold predictions)
  • 测试集:K个模型的预测取均值作为元特征

结构变体

  • 多层Stacking(但一般不超过3层,否则过拟合风险大)
  • 元特征可包括预测值、置信度、中间层表示等
  • 常与Blending(简单版hold-out拆分)对比

最佳实践:基模型多样性越大,Stacking提升越明显。