位置: IT常识 - 正文

集成学习之Stacking(堆栈)方法(stacking 集成)

编辑:rootadmin
集成学习之Stacking(堆栈)方法 文章目录集成学习(Ensemble learning)Stacking(堆栈)方法定义Stacking中的交叉验证Stacking中的过拟合问题其他集成学习(Ensemble learning)

推荐整理分享集成学习之Stacking(堆栈)方法(stacking 集成),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:stacking集成模型,concourse集成,stacking集成算法,stacking集成算法,stacking 集成,stacking集成模型原理介绍,stacking 集成,stacking集成模型原理介绍,内容如对您有帮助,希望把文章链接给更多的朋友!

集成学习是监督式学习的一种。 在机器学习中,监督式学习(Supervised learning)算法目的是从一堆”假设”即假设空间(hypothesis space)中搜索一个具有较好且相对稳定的预测效果的模型。但很多情况下,即使”假设”空间中包含了一些很好的”假设”(hypothesis) ,我们也很难从中找到一个较好的。而集成学习的目的就是通过组合许多个弱模型(weak learners,预测效果一般的模型) 以得到一个强模型(strong learner,预测效果好的模型)。

对于大数据集(数据充足)和小数据集(数据不充足)的情况,集成学习方法都有一些比较好的策略来进行训练。

对于大数据集,可以按照一定策略划分成多个小数据集,对每个数据集训练一个基模型后再进行组合;对于小数据集,可以利用Bootstrap(自助法,一种有放回的抽样方法)进行抽样,得到多个数据集,分别训练基模型之后再进行组合。

理论上来讲,使用集成学习的方法在评估测试时,相比于单一模型是需要更多的计算的。因此,有时集成学习也被认为是使用更多的计算来弥补弱模型的性能,此外,由于集成学习所含的参数量较大,导致模型中每个参数所包含的信息比单一模型要少很多,也就导致了太多的冗余。

集成学习之Stacking(堆栈)方法(stacking 集成)

集成学习的技术主要有Bagging、Boosting以及Stacking等,本文主要对Stacking技术进行讲解分析。

Stacking(堆栈)方法定义

在了解Stacking方法之前,需对Bagging方法有个简要的认知。Bagging方法是利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个基模型。最后的预测结果利用N个模型的输出得到,具体地方式为: 分类问题采用N个模型预测投票的方式,回归问题采用N个模型预测平均的方式。Bagging背后的思想是结合多个模型的结果来获得泛化的结果,采取Bootstrap采样使得Bagging方法的训练集具有随机性,各个基分类器(基模型)也相互独立,从而可以减少过拟合的发生。

Stacking方法的基础思想与Bagging类似,都是结合多个模型的输出来完成最后的预测。但是与Bagging方法相比,有以下不同:

Bagging是采取投票或平均的方式来处理N个基模型的输出,而Stacking方法是训练一个模型用于组合之前的基模型。具体过程是将之前训练基模型的输出构造为一个训练集,以此作为输入来训练一个模型,以获得最终的输出。Bagging中每个基模型的训练集是通过bootstrap抽样得到的,不尽相同。而Stacking方法中每个模型的训练集是一样的,使用全部的训练集来训练。 使用Stacking方法时,常常采用交叉验证的方法来训练基模型。

在Stacking方法中,有两个阶段的模型。 第一个阶段的模型是以原始训练集为输入的模型,叫做基模型(也叫 level-0 模型),可以选取多种基模型进行训练。第二个阶段的模型是以基模型在原始训练集上的预测作为训练集,以基模型在原始测试集上的预测作为测试集,叫做元模型(也叫 level-1 模型)。

下面是一个简单的Stacking算法模型架构。c1, …,cm是基分类器(基模型),每一个基分类器的训练集都是完整的原始训练集。对每一个基分类器都训练T个epoch,在训练完他们之后,将(c1, …,cm)对原始training set在T次epoch过程中的所有输出(p1, …,pm)合并在一起,作为新的训练集来训练第二个阶段的模型——元分类器。 算法的伪代码[1]如下所示。

Stacking中的交叉验证

在实际使用Stacking方法时,为了避免过拟合的风险,常常伴随着交叉验证操作,以下面这张经典的图来解释[2]。这张图表示训练模型时使用5折交叉验证,Model1、Model2(还可以有Model3、Model4等)是不同的机器学习模型,比如随机森林、KNN、朴素贝叶斯、决策树等。假如整个数据集有12500行数据,训练集(Training set)包含10000行数据,测试集包含2500行数据。因为是5折交叉验证,训练集会被划分为5份。以Model1的训练为例,需对Model1进行5次训练,每次挑选一份作为验证集,即每次的训练集为8000行(10000*4/5),验证集为2000行(10000 *1/5)。Model1经过第一次训练后,在验证集上的输出记作a1(2000行),在测试集上的输出记作b1(2500行),经过第二次训练后,在验证集上的输出记作a2(2000行),在测试集上的输出记作b2(2500行)。以此类推,Model1经过五折交叉验证后,会得到a1,a2,a3,a4,a5,和b1,b2,b3,b4,b5。a1,a2,a3,a4,a5即Model1每次经过训练后在验证集上的输出结果,将他们拼接在一起得到A1,即Model1训练后在完整原始训练集上预测的结果。b1,b2,b3,b4,b5即Model1每次经过训练后在测试集上的输出结果,将他们相加之后求平均得到B1,即Model1训练后在完整原始测试集上预测的结果。 以上是Model1的五折交叉验证,经过训练之后得到了A1,B1。对其他的基模型进行同样的操作,假设我们的level-0模型中共包含五个基模型,那么经过上面的操作后,我们就会得到A1、A2、A3、A4、A5,和B1、B2、B3、B4、B5。此时我们再将A1、A2、A3、A4、A5合并在一起作为训练集,将B1、B2、B3、B4、B5作为测试集,来训练和测试我们的level-1模型(元模型)。这样就以五折交叉验证的方式实现了Stacking方法。

Stacking中的过拟合问题

从本质上来讲,Stacking方法其实是一种表示学习[3]。 表示学习指的是模型从原始数据中自动抽取有效特征的过程,比如深度学习就是一种表示学习的方法。在机器学习的问题中,原始数据往往是杂乱无规律的,在stacking方法中,通过第一层的多个学习器后,有效的特征被学习了出来,然后再输入至第二层的元模型中进行学习,这样效果就会很好。从这个角度来看,stacking的第一层就是特征抽取的过程。这一点与神经网络非常的相似,具体可参考「Stacking」与「神经网络」。

在神经网络中,如影随形的就是过拟合问题,在Stacking方法中也不例外。周志华教授也

本文链接地址:https://www.jiuchutong.com/zhishi/297839.html 转载请保留说明!

上一篇:手把手带你调参Yolo v5(二)(调参技巧)

下一篇:web数据可视化(ECharts版)(web数据可视化(Echars版)实训)

  • 教你六种增强网店销售的经典促销的方法(怎样可以增强网络)

    教你六种增强网店销售的经典促销的方法(怎样可以增强网络)

  • 苹果怎么定时开关机功能(苹果怎么定时开飞行模式)

    苹果怎么定时开关机功能(苹果怎么定时开飞行模式)

  • 帮邦行预约成功一定有车吗(帮邦行预约成功没有派车)

    帮邦行预约成功一定有车吗(帮邦行预约成功没有派车)

  • 微信马赛克图片怎么还原(如何去除微信马赛克图片)

    微信马赛克图片怎么还原(如何去除微信马赛克图片)

  • nova5外屏碎了(nova5pro外屏碎了)

    nova5外屏碎了(nova5pro外屏碎了)

  • 华为手机如何切换微信夜间模式(华为手机如何切换卡1卡2的网络)

    华为手机如何切换微信夜间模式(华为手机如何切换卡1卡2的网络)

  • 手机卡大了卡槽放不下咋办(手机卡大了卡槽放不下可以自己剪吗)

    手机卡大了卡槽放不下咋办(手机卡大了卡槽放不下可以自己剪吗)

  • Excel表格怎样移动表格里的文字(Excel表格怎样移动单元格)

    Excel表格怎样移动表格里的文字(Excel表格怎样移动单元格)

  • 华为荣耀30pro返回键怎么设置(华为荣耀30pro返回键在哪里)

    华为荣耀30pro返回键怎么设置(华为荣耀30pro返回键在哪里)

  • 抖音背景模糊特效怎么用(抖音背景变模糊在哪)

    抖音背景模糊特效怎么用(抖音背景变模糊在哪)

  • mate30后面四个孔分别是什么

    mate30后面四个孔分别是什么

  • 三星e980相当于高通(三星e980是什么处理器和麒麟980哪个好)

    三星e980相当于高通(三星e980是什么处理器和麒麟980哪个好)

  • autosleep无法同步数据

    autosleep无法同步数据

  • 荣耀jmmal10是什么型号(荣耀myaal10是什么型号)

    荣耀jmmal10是什么型号(荣耀myaal10是什么型号)

  • 电脑nosignal怎么解决(电脑nosignal怎么办)

    电脑nosignal怎么解决(电脑nosignal怎么办)

  • 有什么软件打拼音(什么软件打拼音方便)

    有什么软件打拼音(什么软件打拼音方便)

  • 为什么关闭添加方式还可以加(为什么关闭添加方式)

    为什么关闭添加方式还可以加(为什么关闭添加方式)

  • pentium2是几位处理器(pentium属于第几代处理器)

    pentium2是几位处理器(pentium属于第几代处理器)

  • 9v2a是快充吗(充电器9v2a是快充吗)

    9v2a是快充吗(充电器9v2a是快充吗)

  • ps怎么拉伸局部图片(photoshop如何拉伸局部)

    ps怎么拉伸局部图片(photoshop如何拉伸局部)

  • 微信逐条转发合并转发区别(微信逐条转发合并记录怎么删除)

    微信逐条转发合并转发区别(微信逐条转发合并记录怎么删除)

  • vue项目pc端和移动端适配(vue移动和pc两套代码)

    vue项目pc端和移动端适配(vue移动和pc两套代码)

  • 手把手教你win10下安装Anaconda(手把手教你win7换主板不重装系统的方法)

    手把手教你win10下安装Anaconda(手把手教你win7换主板不重装系统的方法)

  • 2023华为OD机试(A卷+B卷)(Java C++ Python JS)真题目录 + 考点 + 通过率(2023华为OD机试题)

    2023华为OD机试(A卷+B卷)(Java C++ Python JS)真题目录 + 考点 + 通过率(2023华为OD机试题)

  • 预提所得税的计税依据
  • 餐饮发票不是增值发票吗
  • 增值税交多少怎么查询
  • 划转税务的非税发票
  • 一般纳税人取得普票怎么做账
  • 委托开发费用免所得税和增值税
  • 货物无偿赠送分录
  • 会计政策变更与会计估计的审计
  • 给国外汇款交增值税吗
  • 监督审核费用会计入账
  • 企业所得税讲解
  • 盈余公积可以随便用吗
  • 收到技术服务费计入什么科目
  • 小规模与一般纳税人哪个好
  • 当前中国有什么企业在国外
  • 行程单燃油附加费可以抵扣吗
  • 核销单怎么做
  • 固定资产减值准备可以税前扣除吗
  • 解除劳动关系补偿标准
  • 个人车辆过户给公司
  • 事业单位项目前景怎么样
  • 以前年度亏损在哪个报表体现
  • 纳税申报怎么做
  • 公司取得的营业收入
  • 如何设置电脑从硬盘启动
  • bios设置图文详解
  • PHP:mb_convert_variables()的用法_mbstring函数
  • 向职工集资计入收入吗
  • php integer
  • 境外所得抵扣税怎么申报
  • sk是什么软件的缩写
  • vue父组件调用子组件的方法报错
  • 餐饮类发票
  • electronx
  • 公司设备搬家费会计分录
  • 长期借款账务处理会计分录怎么写
  • ChatGPT 逆天测试,结局出乎预料
  • 农业合作社需要交土地使用税吗
  • 社保和公积金在不同单位交可以吗
  • 深入浅析SQL Server 触发器
  • phpcms api
  • 旅游公司差额征税如何开票
  • 资产负债表中所有者权益合计怎么算
  • 普通发票能不能重新开
  • 农机合作社项目申报方案
  • 公司欠款利息收据怎么写
  • 以固定资产换入库存商品
  • 受托代销的含义
  • 商贸企业发出商品怎么确认收入
  • 固定资产的处理方法
  • 计提工资是否要交税
  • 所有者权益的概念和特征
  • 利润所属科目
  • 关于mysql数据库服务登录下列描述正确的是
  • u盘启动盘如何克隆另外u盘
  • 快速调用cmd
  • centos7如何扩展根分区空间
  • userexperience是什么意思
  • 装win7提示失败怎么办
  • xp系统回收站的东西删除了怎么找回来
  • ptssvc.exe - ptssvc是什么进程 有什么用
  • qconsvc.exe - qconsvc是什么进程 有什么作用
  • 思科用户模式命令
  • win8开始页面
  • [置顶]bilinovel
  • scumpve服务器
  • jquery代码实现鼠标点击
  • jquery自定义组件
  • 使用多进程web
  • pycharm打开文件怎么运行
  • 分页jsp
  • 本地 node js 启动vue
  • 星球大战与高达的关系
  • cocos引擎教程
  • jquery查找指定元素
  • 海关编码查询 商品编码查询
  • 江苏国家税务局电子税务局电话
  • 青海税务app怎么开票
  • 二手房交易契税减免政策
  • 财务制度备案表单怎么填
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设