专栏首页气象AI模型融合—— stacking详细讲解

模型融合—— 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的完整步骤!

原文链接:https://blog.csdn.net/u011630575/article/details/81302994

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 决策树与随机森林

    首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。...

    西西木木
  • 马尔可夫链模型是什么?

    它是随机过程中的一种过程,一个统计模型,到底是哪一种过程呢?好像一两句话也说不清楚,还是先看个例子吧。

    西西木木
  • 强化学习-理解Q-learning,DQN,全在这里~

    本文简要地介绍强化学习(RL)基本概念,Q-learning, 到Deep Q network(DQN),文章内容主要来源于Tambet Matiisen撰写的...

    西西木木
  • django Authorization token

    原因:没有导入rest authon: 'rest_framework.authtoken', 解决方法:在 settings 里面 INSTALLED_AP...

    onety码生
  • 原创 | 一文读懂模型的可解释性(附代码&链接)

    目前人工智能应用已经渗透到我们生活的方方面面,成为我们生活中重要的一部分。我们相信,随着机器学习技术的不断进步,未来有望产生一个能够感知、学习、做出决策和采取独...

    数据派THU
  • Python+sklearn使用线性回归算法预测儿童身高

    问题描述:一个人的身高除了随年龄变大而增长之外,在一定程度上还受到遗传和饮食以及其他因素的影响,本文代码中假定受年龄、性别、父母身高、祖父母身高和外祖父母身高共...

    Python小屋屋主
  • Mysql优化系列(0)--总结性梳理

    对于一个网站来说,在运行很长一段时间后,数据库瓶颈问题会越来越暴露出来。作为运维人员,对数据库做必要的优化十分重要! 下面总结以往查阅到的以及自己工作中的一些优...

    洗尽了浮华
  • Java工具集-Bean对象与Map集合相互转换工具

    cwl_java
  • 【java】CountDownLatch运用场景(1)

    CountDownLatch也叫闭锁,使得一(多)个主线程必须等待其他线程完成操作后再执行。 使用的方式是:CountDownLatch内部维护一个计数器,主线...

    Leetcode名企之路
  • 入门编程只需要做到六点

    听说有一种职业叫码农(程序员),虽然很辛苦,但是收入还行。工作需求量还大。是的,说到底我们普通人选错专业,工作堪忧的问题。学编程也许是你的一种选择。 在学校其实...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券