之前一直对stacking一知半解,找到的资料也介绍的很模糊。。所以有多看了几篇文章,然后来此写篇博客,加深一下印象,顺便给各位朋友分享一下。

stacking的过程有一张图非常经典,如下:

虽然他很直观,但是没有语言描述确实很难搞懂。

上半部分是用一个基础模型进行5折交叉验证,如:用XGBoost作为基础模型Model1,5折交叉验证就是先拿出四折作为training data,另外一折作为testing data。注意:在stacking中此部分数据会用到整个traing set。如:假设我们整个training set包含10000行数据,testing set包含2500行数据,那么每一次交叉验证其实就是对training set进行划分,在每一次的交叉验证中training data将会是8000行,testing data是2000行。

每一次的交叉验证包含两个过程,1. 基于training data训练模型;2. 基于training data训练生成的模型对testing data进行预测。在整个第一次的交叉验证完成之后我们将会得到关于当前testing data的预测值,这将会是一个一维2000行的数据,记为a1。注意!在这部分操作完成后,我们还要对数据集原来的整个testing set进行预测,这个过程会生成2500个预测值,这部分预测值将会作为下一层模型testing data的一部分,记为b1。因为我们进行的是5折交叉验证,所以以上提及的过程将会进行五次,最终会生成针对testing set数据预测的5列2000行的数据a1,a2,a3,a4,a5,对testing set的预测会是5列2500行数据b1,b2,b3,b4,b5。

在完成对Model1的整个步骤之后,我们可以发现a1,a2,a3,a4,a5其实就是对原来整个training set的预测值,将他们拼凑起来,会形成一个10000行一列的矩阵,记为A1。而对于b1,b2,b3,b4,b5这部分数据,我们将各部分相加取平均值,得到一个2500行一列的矩阵,记为B1。

以上就是stacking中一个模型的完整流程,stacking中同一层通常包含多个模型,假设还有Model2: LR,Model3:RF,Model4: GBDT,Model5:SVM,对于这四个模型,我们可以重复以上的步骤,在整个流程结束之后,我们可以得到新的A2,A3,A4,A5,B2,B3,B4,B5矩阵。

在此之后,我们把A1,A2,A3,A4,A5并列合并得到一个10000行五列的矩阵作为training data,B1,B2,B3,B4,B5并列合并得到一个2500行五列的矩阵作为testing data。让下一层的模型,基于他们进一步训练。

以上即为stacking的完整步骤!


转载地址:

http://blog.csdn.net/wstcjf/article/details/77989963

机器学习 —— Stacking算法相关推荐

  1. 机器学习之集成学习(Boosting算法、Bagging算法、Stacking算法)总结

    1.集成学习概述 机器学习分为有监督学习算法和无监督学习算法.在有监督学习中,我们的目标是学习一个稳定的且各方面都表现较好的模型.但是,实际情况往往不理想,有时我们只能得到多个在某些方面表现比较好的& ...

  2. 机器学习-Stacking方法的原理及实现

    Stacking 简述 主要的三类集成学习方法为Bagging.Boosting和Stacking.目前,大型的数据挖掘比赛(如Kaggle),排名靠前的基本上都是集成机器学习模型或者深度神经网络. ...

  3. [机器学习] Boosting算法2 --- GBDT

    [机器学习] Boosting算法1 --- AdaBoost [机器学习] Boosting算法2 --- GBDT [机器学习] Boosting算法3 --- XGBoost [机器学习] Bo ...

  4. 集成学习算法的思想、通过集成学习提高整体泛化能力的前提条件、如何得到独立的分类器Bagging、Boosting、Stacking算法

    集成学习算法 Ensemble learning algorithm 目的:让机器学习的效果更好,单个的分类器如果表现的好,那么能不能通过使用多个分类器使得分类效果更好呢?或者如果单个分类器分类效果不 ...

  5. 个人总结:机器学习与算法工程师方向面试题及答案(持续更新)

    机器学习与算法工程师方向面试题及答案 1.快速排序 2.列表中是否有这个数--二分查找 3.拉格朗日对偶性 4.k-means原理及复杂度 5.逻辑回归和SVM区别 6.过拟合问题怎么解决 7.PCA ...

  6. 【Stacking改进】基于随机采样与精度加权的Stacking算法

    [Stacking改进]基于随机采样与精度加权的Stacking算法 摘要 近年来,人工智能的强势崛起让我们领略到人工智能技术的巨大潜力,机器学习也被广泛应用于各个领域,并取得不错的成果.本文以Kag ...

  7. 机器学习与算法面试太难?

    机器学习与算法面试太难? 来源: https://mp.weixin.qq.com/s/GrkCvU2Ia_mEaQmiffLotQ 作者:石晓文 八月参加了一些提前批的面试,包括阿里.百度.头条.贝 ...

  8. 免费技术直播:唐宇迪带你一节课了解机器学习经典算法

    常常有小伙伴在后台反馈:机器学习经典算法有哪些? 自学难度大又没有效果,该怎么办? CSDN为了解决这个难题,联合唐宇迪老师为大家带来了一场精彩的直播[一节课掌握机器学习经典算法-线性回归模型].本次 ...

  9. 15分钟带你入门sklearn与机器学习——分类算法篇

    作者 | 何从庆 本文转载自AI算法之心(ID:AIHeartForYou) [导读]众所周知,Scikit-learn(以前称为scikits.learn)是一个用于Python编程语言的免费软件机 ...

最新文章

  1. 单片机有什么好的网课?
  2. 从一次react异步setState引发的思考
  3. Windows 下单机最大TCP连接数
  4. html为什么div移动不了,如何使用Jquery将html从一个div移动到另一个div而不会破坏javascript...
  5. 编译原理词法分析实验
  6. python 中csv怎么用_python中不同的CSV功能和使用
  7. 20190815 On Java8 第五章 控制流
  8. 递归下降分析法的基本思想。_八大算法思想总结提高
  9. (转)2017德勤技术趋势报告:未来8年,机器智能如何创造价值
  10. C++实现binary文件读取(可对‘bil‘,‘bsq‘ float32,double,unchar,unit16,unit8等格式进行读取)
  11. 国产银河麒麟 安装wps 的简单方法
  12. dateutil 日期计算_时间工具——DateUtil
  13. 如何解决苹果账号续费时支付失败的问题
  14. mysql特性—自适应哈希索引AHI
  15. win 7 与 virtualbox ubuntu 共享文件夹
  16. 用DevExpress.Xpo 直接维护后台的 数据表,在这四列中录入的数据,即时插入或更新到关联的数据表中
  17. 【软考软件评测师】2019综合知识历年真题
  18. Q:python编码
  19. powershell自定义字体
  20. Pytorch实现mnist手写数字识别

热门文章

  1. vscode python 格式化_python格式化代码只懂autopep8?这里有更好的
  2. 20190614—求平均数,并将低于平均数的数值列出来
  3. SQL外键引用无效表???
  4. QQ macOS 客户端小助手 功能:抢红包、防撤回
  5. [转帖]100级高级驱魔谈挑战现状
  6. 有关于男女之间的50条暴笑金句1
  7. 微信青蛙刷脸支付——Android
  8. swagger主页访问报错500
  9. 基于PHP的产品报价系统的设计与开发
  10. javascript控制元素隐藏的方法