文章目录
前言
本学习笔记为阿里云天池龙珠计划金融风控训练营的学习内容,学习链接为:
https://tianchi.aliyun.com/specials/activity/promotion/aicampfr
一、学习知识点概要
学习有哪些模型融合的方式
注意:往往模型相差越大且模型表现都不错的前提下,模型融合后结果会有大幅提升。
二、学习内容
2.1 Stacking
降低再训练的过拟合性有两种方式:
- 次级模型尽量选择简单的线性模型
- 利用第一层训练模型使用交叉验证的方式
参考:https://blog.csdn.net/wuzhongqiang/article/details/105012739
2.2 Blending
Blending是一种和Stacking很相像的模型融合方式,它与Stacking的区别在于训练集不是通过K-Fold的CV策略来获得预测值从而生成第二阶段模型的特征,而是建立一个Holdout集(留出集),例如30%的训练数据(类似于把原始的训练集先分成两部分, 比如70%的数据作为新的训练集, 剩下的30%的数据作为测试集), 但是通过查看资料,好像是有两个版本, 下面分别介绍一下。
2.2.1 方式一
2.2.2 方式二(Holdout交叉)
就是把Stacking流程中的K-Fold CV 改成 HoldOut CV。第二阶段的stacker模型就基于第一阶段模型对这30%训练数据的预测值进行拟合。
Blending的过程训练和预测过程可以使用下图来表示:
2.3 Blending和Stacking的区别
Blending的优势在于:
- Blending比较简单,而Stacking相对比较复杂;
- 能够防止信息泄露:generalizers和stackers使用不同的数据;
而缺点在于:
- 只用了整体数据的一部分;
- 最终模型可能对留出集(holdout set)过拟合;
- Stacking多次交叉验证要更加稳健。
三、学习问题与解答
3.1 简单平均
简单加权平均,结果直接融合,求多个预测结果的平均值。pre1-pren分别是n组模型预测出来的结果,将其进行加权融合
pre = (pre1 + pre2 + pre3 +...+pren )/n
3.2 加权平均
加权平均法一般根据之前预测模型的准确率,进行加权融合,将准确性高的模型赋予更高的权重。
pre = 0.3pre1 + 0.3pre2 + 0.4pre3
四、学习思考与总结
- 简单平均和加权平均是常用的两种比赛中模型融合的方式。其优点是快速、简单。
- stacking在众多比赛中大杀四方,但是跑过代码的小伙伴想必能感受到速度之慢,同时stacking多层提升幅度并不能抵消其带来的时间和内存消耗,所以实际环境中应用还是有一定的难度,同时在有答辩环节的比赛中,主办方也会一定程度上考虑模型的复杂程度,所以说并不是模型融合的层数越多越好的。
- 当然在比赛中将加权平均、stacking、blending等混用也是一种策略