【集成学习】Stacking算法详解

文章目录

  • [1. Stacking核心思想](#1. Stacking核心思想)
  • [2. 多层Stacking](#2. 多层Stacking)
    • [2.1 如何减轻多层Stacking过拟合](#2.1 如何减轻多层Stacking过拟合)
  • [3. 重复K折Bagging:](#3. 重复K折Bagging:)

集成学习(Ensemble Learning)是一种通过结合多个模型的预测结果来提高整体预测性能的技术。常见的集成学习框架有:Bagging、Boosting、Stacking。每种方法都有其独特的优势和适用场景,本文主要介绍 Stacking 算法

1. Stacking核心思想

Stacking是把多个基学习器预测结果组合起来减小方差

  • 每个基学习器可以是不同的模型
  • 最后将所有基学习器的输出通过全连接层(其它模型也可以)得到最终结果

Stacking与Bagging不同之处:

  • bagging用不同的数据(bootstrap采样),但是使用的基学习器是一样的
  • stacking是使用相同的数据训练不同的模型

2. 多层Stacking

多层Stacking是把多个模型堆叠成多层来减小方差的。如下图所示:

  • 每一层可以使用不同类型的模型,模型可以完全不一样
  • L2 层的输入可以是只有 L1 层的输出,也可以把输入和 L1 层的输出组合起来作为 L2 层的输入
  • 多层 Stacking 容器出现过拟合,因为 L1 层的输出已经被 L1 层做了一次特征提取,然后输出又输入到 L2 层,可能 L2 层会关注一些不重要的信息(比如噪声),这样就会导致过拟合

2.1 如何减轻多层Stacking过拟合

对不同层的模型进行训练时,使用不同的训练集,减轻过拟合:

  • 把训练数据分为 A 和 B 两份:使用 A 数据训练 L1 层模型,然后使用训练好的 L1 层模型去预测 B ,把预测结果再加上 B 本身,作为 L2 层的训练集。该方法的缺点是 每一层 只用了一半数据集。

重复K折Bagging减轻过拟合:

3. 重复K折Bagging:

  • 使用K折交叉验证把数据分为 K 份,每次训练模型时 K-1 份用来做训练,第 K 份用来做验证。也就是说每一层的模型都训练了 K 个版本, 每一层有 n 个模型,那么就训练了 K*n 个模型。注意:在 K 折交叉验证部分中,每一层的每一个模型都会有 K 个版本,每一个版本都会做一次交叉验证,并输出预测值, 那么每个模型总共会输出原始数据容量个预测值,作为下一层的训练集。
  • 使用 K 折较差验证可以使得下一层模型训练时使用完整数据集进行训练
  • 虽然使用了 K 折交叉验证,但是仍然会有过拟合现象,可以把上面步骤重复 n 次,将 n 次的预测结果取平均作为下一层的训练集

本文参考:
https://xie.infoq.cn/article/79caa3e47cea3f44b2b8e8ab7

相关推荐
黎燃5 小时前
短视频平台内容推荐算法优化:从协同过滤到多模态深度学习
人工智能
飞哥数智坊6 小时前
多次尝试用 CodeBuddy 做小程序,最终我放弃了
人工智能·ai编程
后端小肥肠7 小时前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze
唐某人丶10 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
FIT2CLOUD飞致云10 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
阿里云大数据AI技术10 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型
人工智能
袁庭新10 小时前
全球首位AI机器人部长,背负反腐重任
人工智能·aigc
机器之心10 小时前
谁说Scaling Law到头了?新研究:每一步的微小提升会带来指数级增长
人工智能·openai
算家计算11 小时前
AI配音革命!B站最新开源IndexTTS2本地部署教程:精准对口型,情感随心换
人工智能·开源·aigc
量子位11 小时前
马斯克周末血裁xAI 500人
人工智能·ai编程