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

  • 个税系统更正申报可以更正几次
  • 全国增值税发票服务平台
  • 进项税额转出意思是下月还得缴吗
  • 上级补助收入支出决算科目
  • 发票的收款人复核怎么写
  • 技术入股亏损如何清算
  • 行政单位会议纪要范文3篇
  • 外包人员的工资是费用吗
  • 私营小微企业可以贷款吗
  • 视同销售销售额的确定方法
  • 建筑企业如何预缴税款
  • 为在建工程发生的管理费用
  • 外资企业所得税和内资区别
  • 另一个公司代付公司的水电费
  • 预付账款损失的账务处理如何编制呢?
  • 会员卡退钱是退全额吗
  • 小规模定期定额计税依据
  • 期末未缴税额是负数用于抵扣如何填报
  • 事业单位取得的财政拨款免税吗
  • 外地职工医保怎么报销
  • 营改增后融资租赁税率
  • 应收账款核销会计处理
  • 验资报告需要什么材料
  • 手机型号不在鸿蒙系统里
  • 国库集中支付账务处理
  • 代扣代缴个人所得税怎么申报
  • vue3使用高德地图
  • 工程复工程序是什么
  • 应付职工薪酬的明细科目有哪些
  • 职工教育经费计入管理费用吗
  • php处理大文件
  • 无法偿还的应付账款计入什么科目
  • 增值税专用发票有几联?
  • 京东到家的物流模式
  • pytorch 例子
  • 150讲轻松搞定python网络爬虫
  • 复制/root/install.log到/tmp
  • 企业计提的医疗保险属于企业设定提存计划的内容
  • 借入长期借款的利息
  • 私房出租税收
  • 土地增值税预征税率一览表
  • 保险经纪公司要提取风险准备金按什么规定
  • 个人社保的缴纳时间
  • 个税手续费返还计入哪个科目
  • 企业收到海河工厂发运的乙材料,并验收入库
  • PostgreSQL管理工具phpPgAdmin入门指南
  • 个税专项附加扣除标准调整
  • 安全基金提取会计分录
  • 企业将购进的原材料分录
  • 取报销凭证的步骤
  • 仓库到仓库贸易术语
  • 承兑汇票的贴现利息
  • 预收租金会计分录科目
  • 银行手续费没有发票
  • 专用发票过期未认证最新规定
  • 管理费用费用占收入的多少
  • 工厂加工费的账务怎么做
  • 法人的加油费能抵所得税吗
  • 会计往来账怎么用excel做更快
  • MySQL数据库备份
  • mysql8 jdbc连接
  • windows vista电脑
  • freebsd软件安装
  • 苹pp助手
  • 苹果电脑bim
  • WIN10更新WIN11卡在63%
  • Linux history命令的几个使用小技巧
  • linux怎么cd
  • unity小技巧
  • cocos2dx4.0入门
  • javascript题
  • koa和express的区别
  • 并行 python
  • python代码规范化
  • 社保由税务部门征收的文件
  • 贵州网上税务大厅官网
  • 税务注销证明样本
  • 资源税的定义是什么
  • 去银行签贷款合同后多久办过户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设