【集成学习】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

相关推荐
chaojihaomai2 小时前
AI电商商品图生成中的材质保真问题——扩散模型重建优先级分析与锁定式方案
人工智能·材质
大模型探索者4 小时前
2026 企业智能体平台选型指南:从通用到行业深耕,怎么选?
大数据·人工智能
深圳行云创新5 小时前
北极星知识图谱平台|太空越来越“拥挤”,知识图谱如何预测空间碎片碰撞风险?
人工智能·知识图谱
Am-Chestnuts5 小时前
国产AI多轮对话归档与多格式导出实践
人工智能·word
workflower6 小时前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI6 小时前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟7 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台7 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月7 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
大龄码农有梦想7 小时前
使用大模型服务如何保证数据安全?企业 AI 安全、私有化部署与治理实践
人工智能·私有化部署·数据安全·信创·ai agent·智能体·智能体开发平台