关于融合模型的一些简单整理(stackingblending)

卖山楂啦prss 卖山楂啦prss     2022-10-20     808

关键词:

目前,模型融合的方式有很多,比较常用的包括Voting法、Stacking法以及Blending法。

一、Voting

Voting是模型融合策略中最简单的一种方法,其融合过程不需要建立新的模型,只需要在单一模型的输出结果上完成融合。

Voting可以分为硬投票(Hard Voting)和软投票(Soft Voting)。

  • 硬投票(Hard Voting)是指对每个模型给出的样本分类结果以少数服从多数的方式产生最终结果,例如对于一个二分类问题,分别使用逻辑回归模型、支持向量机模型以及随机森林模型进行预测,预测结果分别为0、1、1,那么以投票的方式输出融合结果为1。
  • 软投票(Soft Voting)是指将各个模型预测样本为某一类别的概率的平均值大小来决定所属类别,例如对于一个二分类问题,分别使用逻辑回归模型、支持向量机模型以及随机森林模型对某一样本进行预测,该样本被预测为0类别或1类别的概率分别为[0:0.99,1:0.01]、[0:0.49,1:0.51]、[0:0.4,1:0.6],那么对于0类别来说,平均预测概率为(0.99+0.49+0.4)/3=0.62,而对于1类别的平均预测概率为(0.01+0.51+0.6)/3=0.38,则最终模型融合预测结果为0。

二、Stacking

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

具体的构建思路如下:

用一个基础模型进行5折交叉验证,对于训练集先拿出4折作为训练数据,另外一折作为测试数据,每一次交叉验证我们都会基于训练数据训练生成的模型对测试数据进行预测,这部分预测值最后拼接起来就是第二层模型的训练集。同时每次交叉验证我们还要对数据集原来的整个测试集进行预测,最后将各部分预测值取算术平均,作为第二层模型测试集,在此之后,我们把第一层模型的训练集预测值并列合并得到的矩阵作为训练集,第一层模型的预测集预测值并列合并得到的矩阵作为测试集,带入第二层的模型,再基于它们进一步训练,从而得到最终预测结果。

(1)

(2)

Stacking融合模型在建立时有很多技巧和注意事项,这里不过多介绍,可以多看看其他博客或者论文。

三、Blending

B1ending模型与Stacking模型预测过程大致相似,通常情况下模型训练也是要经过两轮,不同之处在于,Blending划分的训练集不需要交叉验证,而是通过独立划分出来的验证集输入到基模型中,得到第二层模型的训练数据。

具体的,B1ending模型首先将原始数据划分为训练集、验证集和测试集,其中训练集用来训练各个基模型,验证集输入已经训练好的基模型中,得出验证结果将作为第二层模型的训练集数据,测试集用来测试整体模型的性能,得出的测试结果将作为第二层模型的预测集数据。具体的构建思路如下:

(1)划分数据集

(2)融合模型构建

可以看出,相比较Stacking融合算法,由于没有进行五折交叉验证,因此Blending融合算法更加简单。

事实上,由于Stacking第一层模型需要进行K折交叉验证,并且训练元模型时使用的是整个训练集数量的数据,所以Stacking模型花费的总体时间要比Blending更多,第二层模型使用的数据量也要比Blending更多。

其次,Stacking有很多数据都是重复使用的,所以Stacking相比Blending可能存在信息泄漏的风险。

关于模型融合stacking的一些改进思路

...,从而得到最终预测结果。可参考之前的博客,关于融合模型的一些简单整理(Stacking、Blending)其流程图如下所示:简化一下,可以画成这样(1)加入原始训练集的Sta 查看详情

关于模型融合stacking的一些改进思路

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

关于树的简单整理

整理一些树的,基本的,简单的一些知识。先写一下关于树的定义,相关术语。树,父节点、子节点、子树、祖先、兄弟、根节点、叶节点、直径、路径、重心、直径、最近公共祖先、生成树、dfs序,树形dp等 1、最近公共祖... 查看详情

谈谈模型融合之一——集成学习与adaboost(代码片段)

...平均Binning,最近看到的一种方法,还没细看,参考论文StackingBle 查看详情

多模型融合推荐算法

常见的多模型融合算法多模型融合算法可以比单一模型算法有极为明显的效果提升。但是怎样进行有效的融合,充分发挥各个算法的长处?这里总结一些常见的融合方法: 1.线性加权融合法线性加权是最简单易用的融合算法... 查看详情

在keras下实现多个模型的融合

...合小风风125802019-09-3010:42:001105收藏7展开在网上搜过发现关于keras下的模型融合框架其实很简单,奈何网上说了一大堆,这个东西官方文档上就有,自己写了个demo:#Function:基于keras框架下实现,多个独立任务分类#Writer:PQF#Time:2019... 查看详情

在keras下实现多个模型的融合

...合小风风125802019-09-3010:42:001105收藏7展开在网上搜过发现关于keras下的模型融合框架其实很简单,奈何网上说了一大堆,这个东西官方文档上就有,自己写了个demo:#Function:基于keras框架下实现,多个独立任务分类#Writer:PQF#Time:2019... 查看详情

关于接口测试调试的一些总结整理

1.当请求接口返回值为404时,可以查看请求ip,port,address是否正确2.当请求接口返回值为406时,可以查看请求头是否设置了Accept,可以设置成:application/json,text/plain,/3.不同的接口可能使用的提交方式不一样,这时候信息头中的Content-T... 查看详情

关于初级java面试问题的一些整理(部分转自他人)

  1、面向对象的特征有哪些方面      1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂... 查看详情

cesium3dtiles模型多边形裁剪简单整理

参考技术A快三年了,在写了四篇文章,关于Cesium的基本都是水一下,不是不想写,一是没时间,二来确实比较懒,关于Cesium已经一年多没有看过了,最多也就关注一下官网的更新内容,对于Cesium深入了解还真没有下功夫。最近... 查看详情

关于计算机知识的基本理解

本人是个大一的学生,比较热爱计算机,有人说过,最好的学习方式就是整理,并形成体系,那么我就把我现在所学的知识整理一下。  1、最初计算机的模型应该是图灵所提出来的,艾伦.图灵。其模型叫做:图灵机。他... 查看详情

关于kubernetes桌面客户端aptakube的一些笔记整理(代码片段)

写在前面分享一个k8s桌面客户端AptakubeAptakube不是一个开源的产品,现在需要付费,最初是开源的这里简单了解下理解不足小伙伴帮忙指正我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢---... 查看详情

模型融合

结合/融合/整合(integration/combination/fusion)多个机器学习模型往往可以提高整体的预测能力。这是一种非常有效的提升手段,在多分类器系统(multi-classifiersystem)和集成学习(ensemblelearning)中,融合都是最重要的一个步骤。 举个实... 查看详情

关于量子计算机的一些整理(精心整理原创)

...作为软件计算机方向的一只程序猿就不得不转头学习了解关于量子物理学的知识,遂整理一发,如有纰漏 查看详情

模型融合方法最全总结!

本文是模型融合的经验方法总结。包含了投票法、平均法、排序法、Stacking和Blending.一、背景之前有段时间打数据挖掘类比赛,看到很多选手用模型融合的技巧,特别是比赛后期的时候,很多选手开始找队友,多... 查看详情

关于dom的一些操作整理积累

varchils=s.childNodes; //得到s的全部子节点varpar=s.parentNode;  //得到s的父节点varns=s.nextSbiling;  //获得s的下一个兄弟节点varps=s.previousSbiling; //得到s的上一个兄弟节点varfc=s.firstChild;  / 查看详情

机器学习融合想法记录(未完成版)

...分数据:train,test,validate(视模型情况使用)。####1、关于数 查看详情

关于qtcharts中的映射器与模型的使用

简述本文章基于博主在使用QtCharts中一些经验总结,相关了Qt类有QVXYModelMapper,CustomTableModel(一个继承了QAbstractTableModel的类,用于实现自己的model),QScatterSeries与QLineSeriesQVXYModelMapper简述与简单功能演示QVXYModelMapper简述与简单功... 查看详情