详解stacking过程

翻到之前自己写的这篇博客,感觉写的还是不够简洁明了,特地回来改一下,顺便文末附上Kaggle内相关操作的代码,希望能够帮助学习的同学能够瞬间理解stacking这个概念。stacking:stacking是一种分层模型集成框架。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为特征加入训练集进行再训练,从而得到完整的stacking模型。sta…

大家好,又见面了,我是你们的朋友全栈君。

翻到之前自己写的这篇博客,感觉写的还是不够简洁明了,特地回来改一下,顺便文末附上Kaggle内相关操作的代码,希望能够帮助学习的同学能够瞬间理解stacking这个概念。

stacking:stacking是一种分层模型集成框架。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为特征加入训练集进行再训练,从而得到完整的stacking模型。stacking的方法在各大数据挖掘比赛上都很风靡,模型融合之后能够小幅度的提高模型的预测准确度。

stacking详解:

借用拍拍贷风控比赛几位大神这张模型融合的例子,来讲解一下。其中的第三模块,预测M3数据就是一个stacking的过程。

 

详解stacking过程

  • 第一层:我们采用RF、ET、GBDT、XGB四种模型,分别对训练样本进行预测,然后将预测结果作为下一层的训练样本。

具体训练过程:

  1. 划分training data为K折,为各个模型的训练打下基础;
  2. 针对各个模型RF、ET、GBDT、XGB,分别进行K次训练,每次训练保留K分之一的样本用作训练时的检验,训练完成后对testing data进行预测,一个模型会对应5个预测结果,将这5个结果取平均;
  3. 最后分别得到四个模型运行5次之后的平均值,同时拼接每一系列模型对训练数据集的预测结果带入下一层;

图解:

详解stacking过程

举例:比如针对第一个模型RF,我们先将数据集划分成5折,1,2,3,4,5。步骤如下:

  1. 保留2,3,4,5训练,用1做测试数据(查看当前训练的效果,可配合early stop)记录下该折测试数据的预测结果,同时预测testing data(此处的testing data就是我们要最终提交结果的那部分数据);
  2. 保留1,3,4,5训练,用2做测试数据并记录下该折测试数据的预测结果,预测testing data;
  3. 保留1,2,4,5训练,用3做测试数据并记录下该折测试数据的预测结果,预测testing data;
  4. 保留1,2,3,5训练,用4做测试数据并记录下该折测试数据的预测结果,预测testing data;
  5. 保留1,2,3,4训练,用5做测试数据并记录下该折测试数据的预测结果,预测testing data;
  6. 训练五轮之后得到针对testing data的五个预测值,取平均值,同时拼接每一系列模型对训练数据集的预测结果;

接下来再用同样的方法训练ET、GBDT、XGB,注意保持K折数据的一致!全部训练完成之后,将得到的四个预测结果带入下一层预测。

  • 第二层:将上一层的四个结果带入新的模型,进行训练再预测。第二层的模型一般为了防止过拟合会采用简单的模型。

具体训练过程:将四个预测结果,拼接上各个样本的真实label,带入模型进行训练,最终再预测得到的结果就是stacking融合之后的最终预测结果了。

以上即为stacking的完整步骤!

Blending大体与stacking类似,只是将Kfold CV改为了 HoldOut CV,也就是原来Kfold CV是等距划分训练集,HoldOut CV根据自己定义的百分比进行训练集测试集的划分。

为方便理解,附上Kaggle stacking代码:https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125717.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月6日 上午8:40
下一篇 2022年4月6日 上午8:40


相关推荐

  • Operator 背后的技术:Computer-Using Agent(CUA)

    Operator 背后的技术:Computer-Using Agent(CUA)

    2026年3月16日
    1
  • 谷歌浏览器安装postman插件_nik插件安装方法

    谷歌浏览器安装postman插件_nik插件安装方法最近使用了一个向后台发送请求的插件,简单方便,功能强大,推荐给大家使用!Chrome版本68.0.3440.75(正式版本)(64位)Postman版本4.1.31、安装POSTMAN插件Chrome浏览器——>更多工具——>扩展程序选择加载已解压的扩展程序选择POSTMAN文件夹完成样例2、加载模板打开POSTMAN客…

    2025年12月6日
    7
  • 谷歌最强模型 Gemini 2.5 Pro 发布即屠榜,创下史上最大分数飞跃纪录

    谷歌最强模型 Gemini 2.5 Pro 发布即屠榜,创下史上最大分数飞跃纪录

    2026年3月16日
    2
  • php实时刷新数据_批量短网址php搭建

    php实时刷新数据_批量短网址php搭建http协议介绍:http协议是请求/响应范式的,每一个http响应都是由一个对应的http请求产生的;http协议是无状态的,多个http请求之间是没有关系的.http长连接:目前http协议普遍使用的是1.1版本,之前有个1.0版本,两者之间的一个区别是1.1支持http长连接,或者叫持久连接.1.0不支持http长连接,每次一个ht…

    2022年10月14日
    7
  • ftp客户端软件,Windows端有哪些ftp客户端软件值得推荐?3款ftp客户端软件

    ftp客户端软件,Windows端有哪些ftp客户端软件值得推荐?3款ftp客户端软件对于 ftp 客户端软件 你了解多少 其实一般人也接触不到这种软件 ftp 客户端软件主要是针对从事网站管理的工作人员比较有利的一款工具 可以帮助他们快速的解决工作中的问题 方便 简单 快捷又明了的解决问题 小编整理了三款站长们都爱的 ftp 客户端软件 第一款 IIS7 服务器管理工具这款工具是真的好用 童叟无欺的那种好用 在我心里它是排在中文版 javaftp 工具类中的榜首的 它不仅拥有每个 javaftp 工具类都具备的批量管理功能 还具备很多你意想不到的地方 比如定时同步 上传和下载 多任务同时进行 定时备

    2026年3月26日
    2
  • pycharm2018打不开_pycharm indexing

    pycharm2018打不开_pycharm indexingpycharm2020无法打开,点击无反应,今天我碰到这现象,总结大体原因为2种第1种:C:\Users\ygw\AppData\Roaming\JetBrains(删除该目录即可,一般由于升级安装或安装两个不同版本会存在老旧文件影响导致)第2种:进行过激活成功教程,修改了pycharm64.exe.vmoptions配置,其中存在错误配置或配置中的指定jar…

    2022年8月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号