首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

模型融合——提升模型精度的八倍镜

中诚信征信风云杯建模大赛成功举办两届,综合两届的前三甲的建模方案,我们从中发现,模型融合技术成为了队伍间拉开差距,提升模型精度,勇夺榜首的杀手锏和必备武器。本文从模型融合的三种常用方法入手,为大家一一介绍模型融合的各个方面。

近年来,随着人工智能、机器学习的快速发展,大数据类的机器学习竞赛越来越多,国外的kaggle、国内的天池都是举办此类比赛的重要平台,但是要想在这些比赛中脱颖而出获得丰厚奖金则是非常困难的。而其中使用模型融合的技术,成为了选手们提升成绩,攀升榜单的主要手段。尤其是不用模型融合就能拿到奖金几乎成为了小概率事件。今天我们就来聊一聊模型融合的几种常见方式。

模型融合简单来说就是通过对一组的基分类器以某种方式进行组合,以提升模型整体性能的方法。当然,模型融合不能起到决定性作用,在影响模型结果的因素中,一般来说是数据>特征>模型>模型融合。

在业界流传着这么一句话,数据和特征决定了机器学习的上限,而模型和算法只是在逼近这个上限而已。所以,无论是在比赛中还是在处理实际问题的时候特征工程无疑是非常重要的,在数据和特征都无法提升比赛成绩的时候,模型融合或许就能派上用场了。

模型融合的三种信条

1、人民群众的力量是伟大的 — 集体智慧

Voting投票器

Voting可以说是一种最为简单的模型融合方式。假如对于一个二分类模型,有3个基础模型,那么就采取投票的方式,投票多者为最终的分类。在sklearn实现如下:

Bagging

Bagging的思想是利用抽样生成不同的训练集,进而训练不同的模型,将这些模型的输出结果综合(投票或平均的方式)得到最终的结果。Bagging本质上是利用了模型的多样性,改善算法整体的效果。Bagging的重点在于不同训练集的生成,这里使用了一种名为Bootstrap的方法,即有放回的重复随机抽样,从而生成不同的数据集。具体流程如下图所示:

在sklearn实现如下:

随机森林(Random forest)

随机森林实际上就是Bagging算法的进化版,不同于Bagging算法的是,

Bagging产生不同数据集的方式只是对行利用有放回的随机抽样,而随机森林产生不同数据集的方式不仅对行随机抽样也对列进行随机抽样。在sklearn实现如下:

2、站在巨人的肩膀上 — 层叠式递进

Blending

Blending主要是用不相交的数据训练不同的基础模型,将他们的输出取(加权)平均。Blending分为Uniform blending和Linear blending,前者在分类时使用一人一票的投票方式,回归时采用多个模型的平均值。后者是二次学习,使用线性模型将第一步中学习到的学习器的输出结果组合起来。相当于简化版的Stacking。

Stacking

Stacking背后的基本思想是使用大量基分类器,然后使用另一种分类器来融合它们的预测结果,旨在降低泛化误差。Stacking算法分为2层,第一层是用不同的算法形成T个基础分类器,同时产生一个与原数据集大小相同的新数据集,利用这个新数据集和一个新算法构成第二层的分类器。在训练第二层分类器时采用各基础分类器的输出作为输入,第二层分类器的作用就是对基础分类器的输出进行集成。但是由于Stacking模型复杂度过高,比较容易造成过拟合。流程图如下所示:

3、一万小时定律 — 熟能生巧

Boosting

Boosting是一种提升算法,其思想是在算法迭代过程中,每次迭代构建新的分类器,重点关注被之前分类器分类错误的样本,如此迭代,最终加权平均所有分类器的结果,从而提升分类精度。Boosting与Bagging相比来说最大的区别就是Boosting是串行的,而Bagging中所有的分类器是可以同时生成的(分类器之间无关系),而Boosting中则必须先生成第一个分类器,然后依次往后进行。核心思想是通过改变训练集进行有针对性的学习,通过每次更新迭代,增加错误样本的权重,减小正确样本的权重。知错就改,逐渐变好。典型应用为:Adaboost、GBDT和Xgboost。流程图如下图所示:

我们发现,在比赛中获得名次较高的队伍都不同程度的使用了模型融合方法。就在刚刚举办的中诚信征信第二届“风云杯”大学生机器学习建模大赛中,排名靠前的队伍大都使用了像Xgboost、Lightgbm这样的Boosting算法,进而对这些模型的输出结果进行Bagging、Blending或Stacking,模型融合显然成为了提升建模精度的8倍镜,最终取得不错的成绩。因此,如果想要在建模大赛中胜出,在做好特征工程的同时也要用好模型融合这个杀手锏。

参考资料:

1.机器学习-->集成学习-->Bagging,Boosting,Stacking

2.一文读懂集成学习

3.机器学习技法笔记(9)-Blending and Bagging(模型融合)

4.KAGGLE ENSEMBLING GUIDE

5.HUMAN ENSEMBLE LEARNING

6.简析集成学习

—— THE END ——

THANKS

文 | 中诚信征信 王超

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716G1CVMC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券