模型融合算法概念
它不是具体的指某一个算法,而是一种把多个弱模型融合合并在一起变成一个强模型的思想
用模型融合算法的原因
1、单个模型容易过拟合,多个模型融合可以提高范化能力
2、单个模型预测能力不高,多个模型往往能提高预测能力
3、对于数据集过大或过小,可以分别进行划分和有放回的操作,产生不同的数据子集,然后通过数据子集训练不同的分类模型,最终合并成一个大的分类器
4、对于多个异构的特征集的时候,很难进行融合,可以考虑每个数据集构建一个分类模型,然后将多个模型融合
5、模型融合算法成功的关键在于能保证弱分类器(弱模型)的多样性,融合不稳定的学习算法能得到更明显的性能提升
融合模型示例
一个天气预报的示例,可以看到多个模型融合后可以显著提升预测效果:5个子模型平均都会有两个到三个的错误,但是使用少数服从多数的投票法融合之后,最终的预测结果100%正确
模型融合基础算法:
投票法(Voting):如果是分类模型,每个模型都会给出一个类别预测结果,通过投票的方式,按照少数服从多数的原则融合得到一个新的预测结果。
均值法(Averaging):如果是回归模型,每个模型给出的预测结果都是数值型的,这时候我们可以通过求所有子模型的预测结果的均值作为最终的融合结果
Bagging融合框架:
Bagging融合的原理是采用有放回的抽样,即每次从训练样本中随机取出一个样本,而且每次抽取的样本数量与总体的样本数量一致,取K次样本,对K个抽样得到的训练样本进行训练得到K个子模型,然后对K个子模型结果进行融合,分类采用投票法,回归采用均值法。典型算法是随机森林。下图即为Bagging框架示意图。
因Bagging融合算法各子模型间没有相互联系,所以它是一种并行的融合方法,可同时并行处理K个子模型,这样大大提升算法执行效率。
Boosting融合框架
Boosting融合在每次训练模型时更关注上一次的模型错判的样例,并且会给这些错判的样例更大的权重,这样做的目的是就是为了加强对错判样本的学习,让模型通过不断的迭代,效果越来越好。最终将多次迭代的训练得到的弱模型进行加权求和,得到最终的强模型。因为Boosting框架各模型间是有依赖关系存在的,所以它是一种串行的融合方法。
如上图所示,使用Boosting融合方法迭代了3轮得到3个弱分类器,每一轮的训练样本权重是不一样的,它会根据上一轮的预测结果对错判的样本进行加权,目的是为了在下一轮的训练学习中更加关注这些错判的样本,最后把每一轮训练得到的模型加权融合起来。典型算法是Adaboost,GBDT(梯度提升决策权)
Bagging融合更加关注的是得到一个更稳定的模型,而Boosting融合关注的是得到一个预测能力更强的模型。