[每日问答]模型融合的方式有哪些?

1.Bagging
使用训练数据的不同随机子集来训练每个Base Model,最后进行每个Base Model权重相同的Vote。也即Random Forest的原理。

2.Boosting
迭代地训练Base Model,每次根据上一个迭代中预测错误的情况修改训练样本的权重。也即Gradient Boosting的原理。比Bagging效果好,但更容易Overfit。

4.Blending
用不相交的数据训练不同的Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

5.Stacking

在上图中我们可以看到,该模型的第一层有五个分类模型,第二层有一个分类模型。在第一层中,对于不同的分类模型,我们分别将训练数据分为 5份,接下来迭代5次。每次迭代时,将4份数据作为训练集对每个分类模型进行训练,然后剩下一份数据在训练好的分类模型上进行预测并且保留结果。当5次迭代都完成以后,我们就获得了一个结果矩阵。该矩阵是一个N*1的矩阵,N是训练集的样本数。当5个模型都进行完上述操作后,我们就可以得到一个N*5的结果矩阵。然后将该矩阵导入到第二层的模型6中进行训练,此时全部模型训练完毕。接下来是stacking模型的预测过程。

接下来我们开始阐述该模型的预测过程。在第一层中,对于不同分类模型,我们还是使用在训练时分成的5份训练数据进行五次迭代。每次迭代时,我们利用训练后的分类模型对预测集进行预测并保留下来。当5次迭代都完成以后,我们可以得到一个M*5的矩阵,M是预测集的样本数。 我们将这个矩阵按列取平均,缩减成M*1的矩阵。当5个模型都进行完上述操作后,我们就可以得到一个N*5的结果矩阵。然后将该矩阵导入到第二层中训练好的模型6进行预测,就可以得到最终的预测结果。


参考文献
1.http://www.cnblogs.com/zhizhan/p/5826089.html
2.http://prozhuchen.com/2016/12/28/CCF大赛搜狗用户画像总结/

你可能感兴趣的:(每日问答)