机器学习模型融合

参考博客:https://blog.csdn.net/qq_31342997/article/details/88078213

     https://blog.csdn.net/u012969412/article/details/76636336

     https://blog.csdn.net/maqunfi/article/details/82220115

     https://www.jianshu.com/p/fc4de92a9486

一、模型融合的概念

  先产生一组“个体学习器 ”,再用某种策略将它们结合起来,加强模型效果。 

二、常见模型融合的方法

  boosting方法介绍:迭代的训练某个基本模型(base model),每次根据上一轮预测错误得到情况来修改训练样本的权重,比较容易过拟合。

  bagging方法介绍:抽取训练集中不同的子集来训练每个基本模型(base model),最后对每个base model进行投票(少数服从多数的思想)。

  stacking方法介绍:层次融合的思想,第一轮用多个基本模型(一种多个,或多种)训练,然后对其结果用LR在训练(为了匹配每个基本模型的权重)。

  blending方法介绍:层次融合的思想,用不相交的数据。将训练集train数据划分两部分(d1,d2),用对d1训练的模型去预测d2,test。

扫描二维码关注公众号,回复: 7457103 查看本文章

           用上一轮d2的预测值和标签训练新的分类器,然后把test的New Features输入作为最终的预测值。

 三、各种模型融合的区别

  Bagging,Boosting二者之间的区别
    (1)样本选择上:
    Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
    Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
    (2)样例权重:
    Bagging:使用均匀取样,每个样例的权重相等
    Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
    (3)预测函数:
    Bagging:所有预测函数的权重相等。
    Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
    (4)并行计算:
    Bagging:各个预测函数可以并行生成
    Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

  Stacking,Blending二者之间的区别

    1.Blending方式和Stacking方式很类似,相比Stacking更简单点,两者区别是:        

        blending是直接准备好一部分10%留出集只在留出集上继续预测,用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。

     实现简单,但对训练数据利用少了。          

    2.blending 的优点是:比stacking简单,不会造成数据穿越(所谓数据创越,就比如训练部分数据时候用了全局的统计特征,导致模型效果过分的好),

     generalizers和stackers使用不同的数据,可以随时添加其他模型到blender中。                

    3.缺点在于:blending只使用了一部分数据集作为留出集进行验证,而stacking使用多折交叉验证,比使用单一留出集更加稳健

    4.两个方法都挺好,看偏好了,可以一部分做Blending、一部分做Stacking。

猜你喜欢

转载自www.cnblogs.com/tyh666/p/11666690.html