《机器学习算法竞赛实战》整理 | 六、模型融合

目录

前言

6.1 构建多样性

6.1.1 特征多样性

6.1.2 样本多样性

6.1.3 模型多样性

6.2 训练过程融合

6.2.1 Bagging

 6.2.2 Boosting

6.3 训练结果融合

6.3.1 加权法

(1)分类问题

(2)回归问题

(3)排序问题

6.3.2 Stacking 融合

6.3.3 Blending 融合

6.4 实战案例

6.5 思考练习


前言

本章将向大家介绍在算法竞赛中提分的关键步骤,这也是最后阶段的惯用方法,即模型融合(或者集成学习),通过结合不同子模型的长处进行模型融合,当然这是在理想状态下。

本章主要分为构建多样性、训练过程融合和训练结果融合三部分。

模型融合常常是竞赛取得胜利的关键,相比之下具有差异性的模型融合往往能给结果带来很大提升。了解的模型融合方法越多,最后取胜的概率就会越高。

本章从这三个部分介绍不同模型融合方法的应用场景,同时给出使用技巧应用代码

6.1 构建多样性

介绍三种模型融合中构建多样性的方式,分别是特征多样性、样本多样性和模型多样性。其中多样性是指子模型之间存在着差异,可以通过降低子模型融合的同质性来构建多样性,好的多样性有助于模型融合效果的提升。

6.1.1 特征多样性

构建多个有差异的特征集并分别建立模型,可使特征存在于不同的超空间(hyperspace),从而建立的多个模型有不同的泛化误差,最终模型融合时可以起到互补的效果。在竞赛中,队友之间的特征集往往是不一样的,在分数差异不大的情况下,直接进行模型融合基本会获得不错的收益。

另外,像随机森林中的max_features,XGBoost中的colsample_bytree 和LightGBM中的feature_fraction都是用来对训练集中的特征进行采样的,其实本质上就是构建特征的多样性。

6.1.2 样本多样性

样本多样性也是竞赛中常见的一种模型融合方式,这里的多样性主要来自不同的样本集。
具体做法是将数据集切分成多份,然后分别建立模型。我们知道很多树模型在训练的时候会进行采样(sampling),主要目的是防止过拟合,从而提升预测的准确性。

有时候将数据集切分成多份并不是随机进行的,而是根据具体的赛题数据进行切分,需要考虑如何切分可以构建最大限度的数据差异性,并用切分后的数据分别训练模型。

例如,在天池“全球城市计算AI挑战赛”中,竞赛训练集包含从2019年1月1日到1月25日共25天的地铁刷卡数据记录,要求预测1月26日每个地铁站点每十分钟的平均出入客流量(2019年1月26日是周六)。显然,工作日周末的客流量分布具有很大差异,这时会面临一个问题,若只保留周末的数据进行训练,则会浪费掉很多数据;若一周的数据全部保留,则会对工作日的数据产生一定影响。这时候就可以尝试构建两组有差异性的样本分别训练模型,即整体数据保留为一组,周末数据为一组。当然,模型融合后的分数会有很大提升。

6.1.3 模型多样性

不同模型对数据的表达能力是不同的,比如FM能够学习到特征之间的交叉信息,并且记忆性较强树模型可以很好地处理连续特征和离散特征(如LightGBM 和CatBoost),并且对异常值也具有很好的健壮性。把这两类在数据假设、表征能力方面有差异的模型融合起来肯定会达到一定的效果。

对于竞赛而言,传统的树模型(XGBoost,LightGBM、CatBoost)和神经网络都需要尝试一遍,然后将尝试过的模型作为具有差异性的模型融合在一起。

更多多样性的方法
还有很多其他构建多样性的方法,比如训练目标多样性参数多样性损失函数选择的多样性等,这些都能产生非常好的效果。

6.2 训练过程融合

模型融合的方式有两种,第一种是训练过程融合,比如我们了解到的随机森林XGBoost,基于这两种模型在训练中构造多个决策树进行融合,这里的多个决策树可以看作多个弱学习器。其中随机森林通过Bagging的方式进行融合,XGBoost通过Boosting的方式进行融合。

6.2.1 Bagging

Bagging的思想很简单,即从训练集中有放回地取出数据(Bootstrapping),这些数据构成样本集,这也保证了训练集的规模不变,然后用样本集训练弱分类器。重复上述过程多次,取平均值或者采用投票机制得到模型融合的最终结果。上述流程的示意图如图6.1所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值