一.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。

转载自: [https://blog.csdn.net/maqunfi/article/details/82220115](https://blog.csdn.net/maqunfi/article/details/82220115)

模型融合stacking原理相关推荐

  1. 关于模型融合Stacking的一些改进思路

    Stacking模型融合 Stacking是一种嵌套组合型的模型融合方法,其基本思路就是在第一层训练多个不同的基学习器,然后把第一层训练的各个基学习器的输出作为输入来训练第二层的学习器,从而得到一个最 ...

  2. B.数据挖掘机器学习[五]---汽车交易价格预测详细版本{模型融合(Stacking、Blending、Bagging和Boosting)}

    [机器学习入门与实践]入门必看系列,含数据挖掘项目实战:数据融合.特征优化.特征降维.探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:[机器学习入门与实践]合集入门必看系列,含数据挖掘项目实 ...

  3. 模型堆叠(Stacking)和模型融合的原理与实现以及一个库heamy的介绍

    向AI转型的程序员都关注了这个号

  4. 机器学习 scikit-learn8 - 预测贷款用户是否会逾期 - Stacking模型融合【调包】

    Stacking模型融合 1 简介 2 模型融合的原理 2.1 StackingClassifier 概述 2.2 StackingCVClassifier 概述 3 代码使用方法 4 核心代码说明 ...

  5. 【机器学习-贷款用户逾期情况分析2】3.stacking模型融合

    3.0 任务说明 用你目前评分最高的模型作为基准模型,和其他模型进行stacking融合,得到最终模型及评分果. 3.1 stacking模型融合 Stacking(有时候也称之为stacked ge ...

  6. 推荐系统笔记(模型融合)

    思维导图: 推荐系统在技术实现上一般划分三个阶段:挖掘.召回.排序. 模型融合: 挖掘的工作就是对用户和物品做非常深入的结构化分析,对各个角度的特征都被呈现出来,并且建好索引,供召回阶段使用,大部分挖 ...

  7. 数据挖掘终篇!一文学习模型融合!从加权融合到stacking, boosting

    Datawhale 作者:田杨军 ,Datawhale优秀学习者 摘要:对于数据挖掘项目,本文将学习如何进行模型融合?常见的模型融合的方法有哪些?针对不同的问题类型,应该选择哪种方法呢? 模型融合:通 ...

  8. stacking模型融合_【干货】比赛后期大招之stacking技术分享

    各位同学大家好,我是本次参赛选手李博,比赛ID是深蓝(DeePBluE).现在就读于北京邮电大学,是一名研一的在校生,研究方向是数据分析和机器学习. 是的,我又来分(na)享(li)东(wu)西了!这 ...

  9. stacking模型融合

    模型融合 模型融合的方法 简单加权融合: 回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean): 分类:投票(Voting) 综合:排序融合( ...

最新文章

  1. xml serialize
  2. /org/gnome/Terminal/Factory0: Could not connec
  3. python语言特点有哪些-Python是什么?Python有什么特点?
  4. 移动商城第五篇【查看、删除、编辑品牌】
  5. word 转html utf8 在线_pdf转word在线转换器:办公必备工具安利!
  6. 第四范式荣获2020年度信创工委会 “卓越贡献成员单位”称号
  7. linux下安装使用libuuid(uuid-generate)
  8. annotation - SuppressWarning
  9. php文字左右滚动代码,JavaScript
  10. 计算机网络——访问网站数据传输过程
  11. [UE4]OnComponentBeginOverlap.AddDynamic 的编译错误
  12. 第十章 动态选录协议
  13. 文献查找网站集合(自用)
  14. xposed自定义参数
  15. NFS服务及FTP服务
  16. 【代码】求二叉树叶子结点的个数、递归方式
  17. Manacher算法(马拉车算法)
  18. python 进制转换
  19. AMD新旗舰:短小精悍,干掉双芯卡
  20. 演绎与归纳,双管齐下

热门文章

  1. Chrome 配置允许跨域访问
  2. Java身份证阅读器(HX-FDX3S HX-FDX5)
  3. No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)
  4. 国际标准普尔家庭资产象限图
  5. 【Jasypt】Java 轻量级加密工具实现代码数据库账号密码加密
  6. 家电行业售后服务管理系统有哪些黑科技应用?
  7. vpi_register_cb 注册自定义的回调函数
  8. WORKNC 2020.0 win10系统启动错误0xc0000022
  9. iOS 利用余弦函数实现卡片浏览工具
  10. Protocol (网络数据交换规则)