位置: 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版)实训)

  • 收据大写十万元整怎么写标准
  • 办公用品普通发票的会计分录
  • 支付所得税属于筹资活动吗
  • 公司不营业需要做年报吗
  • 税务局代个人开发票交什么税
  • 递延收益怎么交企业所得税
  • 跨月作废增值税专用发票
  • 教育费附加可以扣除吗
  • 通过物流中心再送货配货属视同销售吗
  • 公司购买厂房需要交房产税吗
  • 收到违约金如何入账
  • 子公司给总公司开发票
  • 工资发多了需要退回吗
  • 收到客户承兑怎么做账
  • 增值税专用发票和普通发票的区别
  • 公司挂靠有资质的企业公司会计处理
  • 固定资产月底怎么处理
  • 电子产品发票税是多少
  • 跨年度取得增值税发票
  • 预缴企业所得税是含税数还是不含税
  • 固定基金会计分录怎么处理
  • 房地产企业未出售的房子是否要交房产税
  • 以前年度损益调整贷方余额表示什么
  • 手工发票有效期多久
  • 在会计实务中财务报表附注的披露方法不包括
  • 应收账款增加记哪一方
  • 结转进项税销项税额的分录怎么写
  • 远程桌面连接的用户名和密码在哪里看
  • 发放工资的时候,如何在excel里快速查询未发放成功的
  • thinkphp5控制器
  • uniapp小程序自定义tabbar在iOS手机上太高了
  • 冲红的会计分录
  • 收到退回的保证金利息怎么入账
  • Win11 Build 22000.282正式版推送: 附更新修复内容汇总
  • php的正则表达式
  • 房产证和不动产权证都要办理吗
  • 提取企业发展基金用到银行存款科目吗
  • 符合条件的小型微利企业,减按
  • iis安装php环境
  • php采集源码
  • js javascript
  • 汇编语言a命令怎么用
  • JavaScript基础_1
  • 去年亏损今年盈利
  • 印花税需要扣除负数发票吗
  • java中日志的作用
  • mongodb bi
  • 帝国cms批量excel导入文章
  • 属于原始凭证的有( )
  • 购进交通运输设备怎么做账
  • 留抵进项税额怎么做分录
  • 来料加工的账务处理新收入准则
  • 购进溢余分录
  • 企业弥补亏损的渠道有哪些
  • 每月摊销的金额怎么算
  • 单位租个人房子租房合同
  • 建筑业纳税人简易征收偷逃增值税
  • mysql 索引的类型
  • windows modules installer占用磁盘高
  • 预览版win10
  • window10运行框
  • centos启动有三个选项
  • linux ssh免密码
  • 两种方法解决一半模型的问题
  • 快速关机的快捷方式
  • 查看win8.1版本
  • linux系统的服务器,重启之后运算速度变慢
  • w10资源管理器怎么打开快捷方式
  • Access to the path "LibraryUnityAssembliesUnityEngine.xml" is denied.
  • iredmail是免费的吗
  • jQuery javascript获得网页的高度与宽度的实现代码
  • jquery如何实现双向绑定
  • nodejs获取当前时间
  • JavaScript While 循环 教程
  • python函数的方法
  • 增值税是否在利润表反映
  • 进项税发票过期了怎么办
  • 青岛个人所得税咨询电话是多少
  • 集体诉讼的后果
  • 资源税什么时候征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设