第5个task就是融合模型。
模型融合是比赛后期一个重要的环节,可以用来提高我们预测的准确率。下面学到了以下的方式
- 简单加权融合:
- 回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean);
(1) 简单加权平均,结果直接融合
发现加权结果相对于之前的结果是有提升的,这种称其为简单的加权平均。
还有一些特殊的形式,比如mean平均,median平均
(2) Stacking融合(回归)
发现模型结果相对于之前有进一步的提升,这是我们需要注意的一点是,对于第二层Stacking的模型不宜选取的过于复杂,这样会导致模型在训练集上过拟合,从而使得在测试集上并不能达到很好的效果。
- 分类:投票(Voting)
(1) Voting投票机制
Voting即投票机制,分为软投票和硬投票两种,其原理采用少数服从多数的思想。
(2) 分类的Stacking\Blending融合:
stacking是一种分层模型集成框架。
以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为训练集进行再训练,从而得到完整的stacking模型, stacking两层模型都使用了全部的训练数据。
Blending,其实和Stacking是一种类似的多层模型融合的形式
- 其主要思路是把原始的训练集先分成两部分,比如70%的数据作为新的训练集,剩下30%的数据作为测试集。
- 在第一层,我们在这70%的数据上训练多个模型,然后去预测那30%数据的label,同时也预测test集的label。
- 在第二层,我们就直接用这30%数据在第一层预测的结果做为新特征继续训练,然后用test集第一层预测的label做特征,用第二层训练的模型做进一步预测
其优点在于
- 比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
- 避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
缺点在于:
- 使用了很少的数据(第二阶段的blender只使用training set10%的量)
- blender可能会过拟合
- stacking使用多次的交叉验证会比较稳健 ‘’’
5.4.3 一些其它方法
将特征放进模型中预测,并将预测结果变换并作为新的特征加入原有特征中再经过模型预测结果 (Stacking变化)
(可以反复预测多次将结果加入最后的特征中)
很感谢datawhale提供的这次学习的机会,也很感谢项目组成员无私的奉献。通过5个任务系统的进行学习整个过程。学习到很多算法。特别是针对集成那一章节的catboost还有lightgbm这些算法。不过现在还不是很懂。下来还需要继续学习。4月还要继续学习。持续充电。感谢组织!