五十三.模型融合

一.模型融合简介

1.1模型融合和集成模型的区别

西瓜书中提出,集成学习的基学习器可以是同质的,也可以是异质的。

就工业界来说,一般默认的RF、xgboost、catboost、lightGBM都是同质学习器。其中RF为stacking,基学习器为决策树,理论上可以异质;后三种为boosting,基学习器可改变,但依然是同质。根据子模型之间有没有关系,可以分为相关(boosting第i个子模型依赖于第i-1个子模型)和独立(stacking每个子模型是相互独立的)。相关的话,只能实现串行算法。独立的话,可以并行实现。同时,从bias(偏差)和virance(方差)的角度讲。相关的模型主要是在降低bias,独立的模型主要是在降低variance。

模型融合的主要目的就是把不同质的学习器,例如基学习器分别为RF、lightGBM、SVM、RNN等进行融合,意义如下。

1.2模型融合的意义

个体学习器存在差异,主要表现在以下三个方面:

  • 不同训练数据:数据集使用比例、预处理方法 (缺失值填补、特征工程等)
  • 不同模型结构:RF、XGBoost、LightGBM、CatBoost、CNN、LSTM等,线性、非线性、时序、非时序
  • 不同超参:随机种子数、权重初始化、收敛相关参数 (例如学习率、batch size、epoch、早停步数)、损失函数、子采样比例等

以上差异导致模型在不同情况下拟合的效果不同,通过模型融合,找出不同情况下效果最佳的结果。

二.融合方法

2.1投票法

适用于分类任务,对多个学习器的预测结果进行投票,即少数服从多数,投票的模型要在3个及以上。

**硬投票:**对多个模型直接进行投票,不区分模型结果的相对重要度,最终投票数最多的类为最终被预测的类。

**软投票:**增加了设置权重的功能,可以为不同模型设置不同权重,进而区别模型不同的重要度。

加权投票法:加权的权重可以人工主观设置或者根据模型评估分数来设置权重。

**相对多数投票法:**最终结果在投票中票数最多。

**绝对多数投票法:**最终结果必须在投票中占一半以上。

案例:

2014年KDD Cup上,Marios Michailid对所有结果文件计算Pearson系数,最后选取其中相关性小的模型结果进行投票,分数获得提升。

2.2平均分

适用于回归分类 (针对概率) 任务,对多个学习器的预测结果进行平均,可以平滑结果,从而减少过拟合。

有n个模型,预测结果分别是:
y ^ 1 , y ^ 2 , y ^ 3 , . . . , y ^ n \hat{y}_{1}, \hat{y}_{2},\hat{y}_{3},...,\hat{y}_{n} y^1,y^2,y^3,...,y^n
**简单算术平均法:**就多个模型预测的结果进行平均。
y ˉ = 1 n ( y ^ 1 , y ^ 2 , y ^ 3 , . . . , y ^ n ) \bar{y} =\frac{1}{n} (\hat{y}_{1}, \hat{y}_{2},\hat{y}_{3},...,\hat{y}_{n}) yˉ=n1(y^1,y^2,y^3,...,y^n)
**几何平均法:**受极端值的影响较算术平均法小。
y ˉ = y ^ 1 × y ^ 2 × y ^ 3 × . . . × y ^ n n \bar{y} =\sqrt[n]{\hat{y}_{1}\times \hat{y}_{2}\times\hat{y}_{3}\times...\times\hat{y}_{n}} yˉ=ny^1×y^2×y^3×...×y^n
**加权算术平均法:**权重可以人工主观或根据模型分数来设置。考虑不同模型的能力不同,对最终结果的贡献也有差异,需要用权重来表征不同模型的重要性。
y ˉ = w 1 y ^ 1 + w 2 y ^ 2 + w 3 y ^ 3 + . . . + w n y ^ n w 1 + w 2 + w 3 + . . . + w n \bar{y} =\frac{w_{1}\hat{y}_{1} +w_{2}\hat{y}_{2}+w_{3}\hat{y}_{3}+...+w_{n}\hat{y}_{n}}{w_{1}+w_{2}+w_{3}+...+w_{n} } yˉ=w1+w2+w3+...+wnw1y^1+w2y^2+w3y^3+...+wny^n

案例

加权平均:A,B,C三个模型,预测效果的排名分别是1,2,3,那么给这三个模型的权重分别设置3/6,2/6,1/6。

2.3排序法

对于平均法来说,如果两个模型预测的结果范围不在一个量级或者相差太大,预测值范围较小的模型对最终结果造成的影响不大。一般使用AUC作为评价指标时,常用排序平均法。

排序法的具体步骤如下:

  • 对预测结果进化排序;
  • 对排序序号进行平均;
  • 对平均序号进行归一化;

案例

招商银行的 “消费金融场景下的用户购买预测” 的冠军方案中,对赛题方的AUC评分标准,采用了基于排序的模型融合方法。

2.4.堆叠法Stacking

Stacking的思路是基于原始数据,训练出多个基学习器,然后将基学习器的预测结果组合成新的训练集,去训练一个新的学习器。Stacking分为以下三类:

  • 单层Stacking
  • 多层Stacking
  • 其它技术与Stacking的结合

(1) 单层Stacking

在基学习器上只堆叠一层次级学习器,这也是最常见的Stacking结构。

基学习器可以是同质或异质的模型,次级模型尽量选择简单的线性模型,在传统做法中是选用逻辑回归模型,也能使用非线性模型。

案例

”天池零基础入门金融风控-贷款违约预测“ 一赛中,TOP6的方案使用了LightGBM,CatBoost和XGBoost作为基学习器,然后利用Pearson相关系数分析模型结果差异性,选取差异较大的结果文件,再输入第二层元学习器RF进一步融合结果。

单层Stacking+K折交叉验证:

将数据进行交叉验证,每个基学习器针对数据学习多个结果,然后将结果进行平均、stacking。

案例

3个基学习器,数据进行5折交叉验证,每个基学习器有5个预测结果,将预测结果取平均,然后再经过次级学习器。

(2)多层Stacking

多个基学习器+多个次级学习器+终极学习器

(3)其他技术与Stacking的结合

无监督+Stacking

案例

Kaggle的“Otto Group Product Classification Challenge”中,Mike Kim提出使用t-SNE将数据降维到2或3维,然后用非线性元学习器来融合。

2.5混合法Blending

在Stacking中,基学习器和元学习器本质上都是用同一训练集训练的 (虽然输入的x不一样,但标签y一样),这就会造成信息泄露,从而导致元学习器过拟合我们的数据集。blending对原始数据集先划分出一个较小的留出集,比如10%训练集被当做留出集,那么Blending用90%的数据做基学习器的训练,而10%留出集用作训练元学习器,这样基学习器和元学习是用不同数据集来训练的。

2.6Bagging

bagging的基本思想是有放回的采样。具体做法为:

  • 采用有放回的方法,基于原始数据集产生大量的子集。
  • 基于这些子集训练基模型base model
  • 模型是并行训练并且相互独立的
  • 最终的预测结果取决于多个模型的预测结果

案例

对于包含m个样本的训练集,进行m次有放回的随机采样操作,从而得到m个样本的采样集,这样训练集中有接近36.8%的样本没有被采到。按照相同的方式重复进行,我们就可以采集到T个包含m个样本的数据集,从而训练出T个基学习器,最终对这T个基学习器的输出进行结合。

2.7Boosting

增加前一个基学习器在训练过程中预测错误样本的权重,使得后续基学习器更加关注这些打标错误的训练样本,尽可能纠正这些错误,一直向下串行直至产生需要的T个基学习器,Boosting最终对这T个学习器进行加权结合,产生学习器委员会。

  • 基于原始数据集构造子集
  • 初始的时候,所有的数据点都给相同的权重
  • 基于这个子集创建一个基模型
  • 使用这个模型在整个数据集上进行预测
  • 基于真实值和预测值计算误差
  • 被预测错的观测值会赋予更大的权重
  • 再构造一个模型基于之前预测的误差进行预测,这个模型会尝试矫正之前的模型
  • 类似地,构造多个模型,每一个都会矫正之前的误差
  • 最终的模型(strong learner)是所有弱学习器的加权融合
  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值