Datawale组队学习17期——Task5 模型融合

275 阅读2分钟

转眼十几天过去了,本次学习也到了最后一个Task,即对训练好的模型进行融合的任务。模型融合指的是对之前建模调参的多个模型进行融合,以此达到更好的效果。

在比赛中,模型融合是上分的好手段,其实本质上就是在传统机器学习领域大放异彩的集成学习的又一次展现。

在模型融合/集成学习中,主要有以下方法:

1. 对多个模型的分类结果(概率值)进行平均;

2. 对多个模型的分类结果(概率值)进行加权平均;

3. 用每个模型的分类结果来进行投票;

4. 用每个模型的分类结果来进行加权投票;

5. 利用排序/log来融合模型;

6. 之前提到过的boosting和bagging

7. stacking。具体是从多个base model获得prediction,然后将预测结果作为新的训练集再来训练一个模型,但是这样容易导致过拟合,可以考虑使用K折交叉验证等防止过拟合手段;

8. blending是指将prediction作为新的特征和原特征合并,再训练一个模型;

上面提到的K折交叉验证是指一种数据划分的手段。在最传统的机器学习数据划分中,60%的数据是训练集,40%的数据是验证集,这里不考虑测试集。训练集用于学习梯度训练参数,验证集用于修改超参数,防止超参数在验证集上过拟合。

这种方法有几个问题,即数据量小的时候验证集太浪费数据了,而且效果不好,容易在验证集上过拟合。所以k折交叉验证应运而生,它的思想是把整个数据集分成k份,在一个epoch中,依次取每一份为验证集,剩下的数据为训练集,从而完成训练。

那么,本次学习到此结束,收获颇丰!!