Ensemble几种方式原理
kaggle-ensembling guide
blendnig
stacking
代码
模型融合接口
模型融合heamy
常见的 Ensemble 方法有这么几种:
- Bagging:使用训练数据的不同随机子集来训练每个 Base Model,最后进行每个 Base Model 权重相同的 Vote。也即 Random Forest 的原理。
- Boosting:迭代地训练 Base Model,每次根据上一个迭代中预测错误的情况修改训练样本的权重。也即 Gradient Boosting 的原理。比 Bagging 效果好,但更容易 Overfit。
Bagging
1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping(有放回)的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(我们这里假设k个训练集之间是相互独立的,事实上不是完全独立)
2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。但是是同种模型。(注:,k个训练集虽然有重合不完全独立,训练出来的模型因为是同种模型也是不完全独立。这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
对于Bagging需要注意的是,每次训练集可以取全部的特征进行训练,也可以随机选取部分特征训练,例如随机森林就是每次随机选取部分特征
讲完Boosting,Bagging,我们来总结下这两种框架算法的异同点:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
5)bagging是减少variance,而boosting是减少bias- Blending:用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。
- Stacking:接下来会详细介绍。
从理论上讲,Ensemble 要成功,有两个要素:
- Base Model 之间的相关性要尽可能的小。这就是为什么非 Tree-based Model 往往表现不是最好但还是要将它们包括在 Ensemble 里面的原因。Ensemble 的 Diversity 越大,最终 Model 的 Bias 就越低。
- Base Model 之间的性能表现不能差距太大。这其实是一个 Trade-off,在实际中很有可能表现相近的 Model 只有寥寥几个而且它们之间相关性还不低。但是实践告诉我们即使在这种情况下 Ensemble 还是能大幅提高成绩。
Stacking
相比 Blending,Stacking 能更好地利用训练数据。以 5-Fold Stacking 为例,它的基本原理如图所示:
整个过程很像 Cross Validation。首先将训练数据分为 5 份,接下来一共 5 个迭代,每次迭代时,将 4 份数据作为 Training Set 对每个 Base Model 进行训练,然后在剩下一份 Hold-out Set 上进行预测。同时也要将其在测试数据上的预测保存下来。这样,每个 Base Model 在每次迭代时会对训练数据的其中 1 份做出预测,对测试数据的全部做出预测。5 个迭代都完成以后我们就获得了一个 #训练数据行数 x #Base Model 数量
的矩阵,这个矩阵接下来就作为第二层的 Model 的训练数据。当第二层的 Model 训练完以后,将之前保存的 Base Model 对测试数据的预测(因为每个 Base Model 被训练了 5 次,对测试数据的全体做了 5 次预测,所以对这 5 次求一个平均值,从而得到一个形状与第二层训练数据相同的矩阵)拿出来让它进行预测,就得到最后的输出。
补充:以上图为例,我们现在有训练集train_x,train_y,测试集test
① 我们首先选择一种模型比如随机森林rf。(未经训练)
②这里假设把训练集均分成5份,把其中四份作为小的训练集s_train_x,s_train_y另外一份作为小的测试集s_test,测试集test不变。
③我们以s_train_x,s_train_y训练rf模型,训练出的模型预测s_test得出对应的s_pred,再预测test得出y_pred。
④在训练集再选择另外一份作为小的测试集s_test_x,其他四份作为训练集训练模型rf。
⑤重复②,③,④步骤五次。我们会得到五个s_pred和五个y_pred。
五个s_pred作为一个train_X,原始的train_y作为train_Y训练模型得到模型G,五个y_pred取个平均值作为新的test_X,把test_X带入到模型G中得出预测结果。
以上就是stacking的第一层,在第二层中,我们以第一层的输出train再结合其他的特征集再做一层stacking。不同的层数之间有各种交互,还有将经过不同的 Preprocessing 和不同的 Feature Engineering 的数据用 Ensemble 组合起来的做法。
上面是以一种模型随机森林进行模型训练,当然可以分别用不同种的模型。
Ensemble几种方式原理相关推荐
- ActiveMQ传输文件的几种方式原理与优劣
本文讨论ActiveMQ传输文件的几种方法的原理及其利弊,作为消息发送.直接传输文件.使用ftp或http中转.最后介绍扩展ActiveMQ实现自定义文件传输方式,讨论如何实现高效的文件传输. 作为消 ...
- VMware Workstation网络连接的三种方式原理详解 与 配置过程图解
VMware workstations为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们 ...
- OpenCV resize 改变图片大小,4种方式原理对比
微信:18233275213 本文共总结了OpenCV提供的4种resize图片的方法: 一.最近邻插值法 INTER_NEAREST 二.双线性插值(默认设置) INTER_LINEAR 一.最近邻 ...
- 软件激活的两种方式原理
1.通过激活码直接激活,即公钥私钥问题. 2.licence server方式,软件会请求该地址的服务器,licence server会返回给该用户一个激活码,进而完成激活.
- CSS | 水平垂直居中都有哪几种方式
我把一个子元素在父元素中水平垂直居中的实现方式分为三类,第一类是宽度已知,第二类是宽度未知,第三类是图片水平垂直居中. 第一类 宽度已知 第一种方式:采用绝对定位 原理 元素开启绝对定位后,水平方向和 ...
- Unity中制作自定义字体的两种方式
Unity支持自定义图片字体(CustomFont),网上有很多教程,细节不尽相同,当概括起来基本就是两种方式.一是使用BMFont,导出图集和.fnt文件,再使用图集在Unity中设置得到字体.二是 ...
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看. majflt代表major fault,中文名叫大错误,minflt代表minor faul ...
- MySQL主从原理,基于快速学习一门技术的3种方式!
根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...
- 三种Cache写入方式原理简介
三种Cache写入方式原理简介 在386以上档次的微机中,为了提高系统效率,普遍采用Cache(高速缓冲存储器),现在的系统甚至可以拥有多级Cache.Cache实际上是位于CPU与DRAM主存储器之 ...
最新文章
- 图论之tarjan缩点
- [转]VC获取各类指针
- 计算机考试题 实操,计算机考试实操题-20210604194811.docx-原创力文档
- JVM资源分析工具jprofiler使用简介
- IBM MR10i阵列卡配置Raid0/Raid1/Raid5(转)
- Mysql表并联_SQL多表查询 表联结
- 互联网红利消退,下一个机会在哪?
- Linux下安装spf13-vim
- 多媒体计算机软件都包括哪些,多媒体计算机软件都有什么
- 华为手表表盘的数字什么意思_华为gt2表盘上的数字是什么意思
- mma7660.c的改进
- 操作系统中的FCFS(First Come First Served)先来先服务算法,java实现
- 8.如何在idea打开一个已有项目
- 有截图功能的android播放器,Android视频播放器VPlayer发新版本 增加截图功能
- word 2013 尾注后继续添加正文的方法
- 华东,聚集中国最多的女药代
- 数列的单调有界和极限值
- 基于MATLAB平台实现红绿灯(交通灯)识别
- LabVIEW——波形图总结
- 暨南大学计算机科学研究生,计算机科学系硕士研究生在IEEE Virtual Reality (VR) 2020上发表两篇论文...