5模型融合(stacking/blending/boosting/bagging)-零基础入门数据挖掘

1 模型融合包含哪些

1.1简单加权融合
回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean)
分类:投票(Voting)
综合:排序融合(Rank averaging),log融合
1.2 stacking/blending
构建多层模型,并利用预测结果再拟合预测
1.3 boosting/bagging(在xgboost, Adaboost, GBDT中已经用到)
多树的提升方法

2 详解stacking/blending

2.1 Stacking思想简介

1.Stacking的思想是一种有层次的融合模型,比如我们将用不同特征训练出来的三个GBDT模型进行融合时,我们会将三个GBDT作为基层模型,在其上在训练一个次学习器(通常为线性模型LR),用于组织利用基学习器的答案,也就是将基层模型的答案作为输入,让次学习器学习组织给基层模型的答案分配权重。
2.下图是个简单的例子,A、B是学习器,C、D、E是进行答案再组织的次学习器,次学习器会组织利用底层模型提供的答案。
5模型融合(stacking/blending/boosting/bagging)-零基础入门数据挖掘_第1张图片

2.2 Stacking过程解读

Stacking的主要思想是训练模型来学习使用底层学习器的预测结果,下图是一个5折stacking中基模型在所有数据集上生成预测结果的过程,次学习器会基于模型的预测结果进行再训练,单个基模型生成预测结果的过程是:

首先将所有数据集生成测试集和训练集(假如训练集为10000,测试集为2500行),那么上层会进行5折交叉检验,使用训练集中的8000条作为喂养集,剩余2000行作为验证集(橙色)
5模型融合(stacking/blending/boosting/bagging)-零基础入门数据挖掘_第2张图片每次验证相当于使用了蓝色的8000条数据训练出一个模型,使用模型对验证集进行验证得到2000条数据,并对测试集进行预测,得到2500条数据,这样经过5次交叉检验,可以得到中间的橙色的52000条验证集的结果(相当于每条数据的预测结果),52500条测试集的预测结果。

接下来会将验证集的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集成同样需要基学习器尽量保持独立,效果相近。

2.3 Stacking特点

使用stacking,组合1000多个模型,有时甚至要计算几十个小时。但是,这些怪物般的集成方法同样有着它的用处:

(1)它可以帮你打败当前学术界性能最好的算法
(2)我们有可能将集成的知识迁移到到简单的分类器上
(3)自动化的大型集成策略可以通过添加正则项有效的对抗过拟合,而且并不需要太多的调参和特征选择。所以从原则上讲,stacking非常适合于那些“懒人”
(4)这是目前提升机器学习效果最好的方法,或者说是最效率的方法human ensemble learning 。

2.4 Stacking和Blending对比

1.Blending方式和Stacking方式很类似,相比Stacking更简单点,两者区别是:
blending是直接准备好一部分10%留出集只在留出集上继续预测,用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

2.blending 的优点是:比stacking简单,不会造成数据穿越(所谓数据创越,就比如训练部分数据时候用了全局的统计特征,导致模型效果过分的好),generalizers和stackers使用不同的数据,可以随时添加其他模型到blender中。

3.缺点在于:blending只使用了一部分数据集作为留出集进行验证,而stacking使用多折交叉验证,比使用单一留出集更加稳健

4.两个方法都挺好,看偏好了,可以一部分做Blending、一部分做Stacking。

3 详解boosting/bagging

自己原创的另外一篇博客,内容待补充一文读懂决策树(ID3,C4.5,CART),随机森林,GBDT,AdaBoost,XGboost,lightGBM,CatGBM

4 大佬经验

5模型融合(stacking/blending/boosting/bagging)-零基础入门数据挖掘_第3张图片
大神链接
https://mp.weixin.qq.com/s/fsT6rzpL5cuzh2usNjzzbA

你可能感兴趣的:(数据挖掘笔记)