模型融合

模型融合是将多种调参完成的模型进行融合 。

1.简单加权融合:

  1. 回归(或分类输出为概率)的数值型输出:平均法
    - 算术平均(简单、加权)
    - 几何平均
  2. 分类:投票(Voting)
    • 绝对多数投票法
    • 相对多数投票法
    • 加权投票法
  3. 综合:排序融合(Rank averaging),log融合

2.stacking

构建多层模型,并利用预测结果再拟合预测。

  1. 什么是stacking

    简单来说,就是当用训练数据学习出若干个基学习器后,将多个基学习器的预测结果作为新的训练集,来学习一个新的学习器。
    模型融合_第1张图片
    注:在stacking方法中,我们把个体学习器叫做初级学习器,用于结合的学习器叫做次级学习器或元学习器(meta-learner),次级学习器用于训练的数据叫做次级训练集。次级训练集是在训练集上用初级学习器得到的。

  2. 如何进行stacking

算法如下:
模型融合_第2张图片

  • 过程1-3是训练的个体学习器的,也就是初级学习器。
  • 过程5-9是使用初级学习器来预测结果,并将预测结果与真实样本标签合并,形成新的数据集作为次级学习器的训练集。
  • 过程11 使用次级学习器学习新的数据集,预测的结果便是最后的结果。
  1. 降低过拟合
    使用初级学习器训练的标签再利用真实标签进行再训练,容易导致过拟合,一般可使用两种方法解决:
    • 次级模型尽量选择简单的线性模型
    • 利用k折交叉验证

3.blending

blending是与stacking类似的多层模型融合模式,大致流程如下:

  1. 将原始数据集划分为训练集和测试集,其中训练集需要再次划分为训练集和验证集。
  2. 使用多个初级学习器对训练集进行训练,然后用训练好的模型对验证集和测试集进行预测。
  3. 使用第2步中得到的验证集的预测结果作为新的训练数据,与真实样本标签合并,形成新的数据集作为次级学习器的训练集。
  4. 使用次级学习器对第2步中的测试集预测结果,再进行预测,得到最后的预测结果。

blending与stacking对比

  • 优点:
    1. 比stacking简单(因为不用进行k次的交叉验证)
    2. 避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
  • 缺点:
    1. 使用了很少的数据(是用holdout划分测试集,并非cv)
    2. blender可能会过拟合
    3. stacking使用多次的CV会比较稳健

【 参考资料】
1、天池新手赛
2、西瓜书

你可能感兴趣的:(模型融合)