一.Stacking思想简介

1.Stacking的思想是一种有层次的融合模型,比如我们将用不同特征训练出来的三个GBDT模型进行融合时,我们会将三个GBDT作为基层模型,在其上在训练一个次学习器(通常为线性模型LR),用于组织利用基学习器的答案,也就是将基层模型的答案作为输入,让次学习器学习组织给基层模型的答案分配权重。

2.下图是个简单的例子,A、B是学习器,C、D、E是进行答案再组织的次学习器,次学习器会组织利用底层模型提供的答案。

二.Stacking过程解读

Stacking的主要思想是训练模型来学习使用底层学习器的预测结果,下图是一个5折stacking中基模型在所有数据集上生成预测结果的过程,次学习器会基于模型的预测结果进行再训练,单个基模型生成预测结果的过程是:

*首先将所有数据集生成测试集和训练集(假如训练集为10000,测试集为2500行),那么上层会进行5折交叉检验,使用训练集中的8000条作为喂养集,剩余2000行作为验证集(橙色)

*每次验证相当于使用了蓝色的8000条数据训练出一个模型,使用模型对验证集进行验证得到2000条数据,并对测试集进行预测,得到2500条数据,这样经过5次交叉检验,可以得到中间的橙色的5*2000条验证集的结果(相当于每条数据的预测结果),5*2500条测试集的预测结果。

*接下来会将验证集的5*2000条预测结果拼接成10000行长的矩阵,标记为A1,而对于5*2500行的测试集的预测结果进行加权平均,得到一个2500一列的矩阵,标记为B1。

*上面得到一个基模型在数据集上的预测结果A1、B1,这样当我们对3个基模型进行集成的话,相于得到了A1、A2、A3、B1、B2、B3六个矩阵。

*之后我们会将A1、A2、A3并列在一起成10000行3列的矩阵作为training data,B1、B2、B3合并在一起成2500行3列的矩阵作为testing  data,让下层学习器基于这样的数据进行再训练。

*再训练是基于每个基础模型的预测结果作为特征(三个特征),次学习器会学习训练如果往这样的基学习的预测结果上赋予权重w,来使得最后的预测最为准确。

以上就是Stacking的思想,进行Stacking集成同样需要基学习器尽量保持独立,效果相近。

三.Stacking特点

使用stacking,组合1000多个模型,有时甚至要计算几十个小时。但是,这些怪物般的集成方法同样有着它的用处:

(1)它可以帮你打败当前学术界性能最好的算法

(2)我们有可能将集成的知识迁移到到简单的分类器上

(3)自动化的大型集成策略可以通过添加正则项有效的对抗过拟合,而且并不需要太多的调参和特征选择。所以从原则上讲,stacking非常适合于那些“懒人”

(4)这是目前提升机器学习效果最好的方法,或者说是最效率的方法human ensemble learning 。

四.Stacking和Blending对比

1.Blending方式和Stacking方式很类似,相比Stacking更简单点,两者区别是:

*blending是直接准备好一部分10%留出集只在留出集上继续预测,用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

2.blending 的优点是:比stacking简单,不会造成数据穿越(所谓数据创越,就比如训练部分数据时候用了全局的统计特征,导致模型效果过分的好),generalizers和stackers使用不同的数据,可以随时添加其他模型到blender中。

3.缺点在于:blending只使用了一部分数据集作为留出集进行验证,而stacking使用多折交叉验证,比使用单一留出集更加稳健

4.两个方法都挺好,看偏好了,可以一部分做Blending、一部分做Stacking。

机器学习笔记(7)stacking算法相关推荐

  1. 机器学习笔记——支持向量机SMO算法完整版代码分析

    机器学习笔记--支持向量机SMO算法完整版代码分析 代码大体分析 外循环 参数类 内循环 KKT条件判断 eCache参数 完整SMO代码 添加核函数代码 代码参考书籍:<机器学习实战> ...

  2. 机器学习笔记之EM算法(二)EM算法公式推导过程

    机器学习笔记之EM算法--EM算法公式推导过程 引言 回顾:EM算法公式 推导过程 引言 上一节介绍了隐变量和EM算法,以及 以EM算法公式为条件,证明了随着EM算法迭代步骤的增加,每次迭代得到新的模 ...

  3. 机器学习笔记之EM算法(一)隐变量与EM算法公式的收敛性

    机器学习笔记之EM算法--隐变量与EM算法公式的收敛性 引言 隐变量 示例1 示例2 EM算法 包含隐变量的混合概率模型 EM算法的表达形式 EM算法的收敛性 EM算法的收敛性证明的条件与目标 EM算 ...

  4. [机器学习笔记] 常用关联规则算法

    机器学习中常用关联规则算法 关联规则算法是一种基于规则的机器学习算法,该算法可以在大数据中发现彼此之间的关系. 它的目的是:利用一些度量指标来分辨数据库中存在的强规则.也即是说关联规则挖掘是用于知识发 ...

  5. 机器学习笔记(5) KNN算法

    这篇其实应该作为机器学习的第一篇笔记的,但是在刚开始学习的时候,我还没有用博客记录笔记的打算.所以也就想到哪写到哪了. 你在网上搜索机器学习系列文章的话,大部分都是以KNN(k nearest nei ...

  6. python 数学期望_python机器学习笔记:EM算法

    完整代码及其数据,请移步小编的GitHub 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/MachineLearningNote EM算法也称期望最大化 ...

  7. 七月算法机器学习笔记8 聚类算法

    七月算法(http://www.julyedu.com) 12月份 机器学习在线班 学习笔记

  8. Python机器学习笔记:XgBoost算法(亲测)

    前言 1,Xgboost简介 Xgboost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器.因为Xgboost是一种提升树模型,所以它是将许多 ...

  9. 白板机器学习笔记 P60-P65 EM算法

    视频地址:https://www.bilibili.com/video/BV1aE411o7qd?p=46 笔记地址:https://www.yuque.com/books/share/f4031f6 ...

  10. Python机器学习笔记——随机森林算法

    随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...

最新文章

  1. 关于DEBUG的一点体会
  2. Git .gitignore文件忽略(自己做过测试了)
  3. 13.2.10 Ajax操作
  4. LeetCode 1657. 确定两个字符串是否接近
  5. 关于Java的String字符串常量的长度问题(Error:(14, 22) java: 常量字符串过长)
  6. Tomcat和Weblogic的区别
  7. android ios base64编码,IOS Base64编码/解码
  8. Unity3D启动时卡在Loading界面
  9. css盒模型(附图解)
  10. 尚硅谷JavaWeb视频教程,新版升级
  11. psim扰动观察法编程c语言,基于PSIM的新型扰动观察法的MPPT仿真研究
  12. 用hb编辑一个html,HBuilder:一个不错的web前端IDE(代码编辑器)
  13. iOS 中常用的几个关键字的用法
  14. 帷幕的帷是什么意思_人为什么要结婚?看看情感大师是怎么说的
  15. 转载:图像抠图算法学习 -Shared Sampling for Real-Time Alpha Matting
  16. 2023年全国最新会计专业技术资格精选真题及答案8
  17. 计算机二进制转化教案及ppt,二进制运算及转换(课件).ppt
  18. docker安装php扩展大全
  19. [日推荐]『查找一下小程序』好用的搜索工具
  20. with open和open的区别

热门文章

  1. php 126 发邮件,email - PHPmailer 使用网易126发送邮件的问题
  2. linux查看硬盘插槽_linux下硬盘接口信息怎么查询
  3. LWIP应用开发|广播与组播
  4. linux下apache配置文件测试,重启 Apache 服务器及测试配置
  5. MySQL常见基础面试题
  6. Android总是闪退,怎么办?Android崩溃机制。
  7. C++缘分测试,来测测你和“她”的缘分(仅娱乐)
  8. Java.IO 字符流读写文件
  9. 【博客450】OpenFlow学习
  10. bert论文解析——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding