集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)

集成学习(Ensemble)相关概念及算法(Adaboost,Bagging,Stacking)

集成学习简介

集成学习(Ensemble)指的是,instead of 用一个单一的精密的高效能的学习器对数据进行处理,我们采用多个weak learner进行学习,并且通过一定的手段将这些weak learner的结果进行整合,得到最终需要的结果。当然,虽然叫做weak learner,实际上只是相对于单一的learner来说可以允许弱一些,但是还是要有一定的准确性,并且,对于这多个弱学习器来说,学习器之间应当有些不同。所以我们的ensemble的学习器应具有好而不同的特点。

ensemble的基本思想理解起来并不困难,就像我们不愿意将鸡蛋放在同一个篮子里,选择多个不同的模型,如果每个的性能都有一定的保障的话,即使不必每个都太好,我们仍然能利用他们的差异对冲风险,并且得到一个优化的整体解决方案。

集成学习ensemble在具体实现过程中有两种主要的方式,那就是baggingboosting,bagging在随机森林一篇中已经介绍过了,它试图建立多个不相干的模型,并且通过bootstrap抽样方法给各个模型分配不同的训练集,最后将结果汇总。而boosting的思路则刚好相反,它希望找到一个学习器,通过学习器的表现对样本分布进行一个调整,将那些容易分辨的,不易出错的关注降低,而将难以分辨的关注提高,这样通过一次又一次调整,迭代,并且记录下每个学习器的效能,对于效果好的给一个高一些的权重,而差的则低权重,最终进行加权处理各个基学习器,得到的学习器就能得到一个较好的效果。

对比来看,显然,bagging是考虑了基学习器之间的无关性,并且给予不同的train set,并行的计算出结果,然后直接汇总;而boosting利用了基学习器的相关性,而且是下一个学习器是利用上一个的成果,所以只能sequential的进行,不能并行,最后加权汇总。下面分别介绍两种ensemble方法。

bagging相关

bagging算法原理:


这里写图片描述

原理较为简单,此处不再赘述,详见随机森林

boosting相关

boosting中常用的一个是adaboost算法,被ICDM(IEEE International Conference on Data Mining)评为十大经典算法之一(C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, CART),其原理实际上是优化下面的损失函数:


这里写图片描述

H为预测的label,f为真实的label,取值±1。可以证明,如下算法等价于求解这个损失函数:


这里写图片描述

首先,我们对所有的训练样本initial同样的归一的权重,然后用带权的学习器去学这些有权重的样本,当然,如果用的学习器没法把权重加进来,那么可以根据现在的分布进行一个resample,重采样,然后训练,训练的学习器可以估计出它的误差,记为epsilon,这里我们看到,经典的adaboost是处理二分类的,所以如果epsilon大于0.5,说明这个分类器要扔掉,也就是不符合好而不同中的好的要求,于是算法停止,如果epsilon可以接收,那么我们计算给这个weak learner在最终的汇总中给一个多大的权重,一个直观的想法就是,错误率越低,权重就应该越大,那么我们计算它的正确率和错误率的几率odd,就是 (1-eps) / eps,然后取ln,乘以1/2,得到权重(这个式是由优化目标推出来的,同时符合直观)。接下来对各个样本进行重新分配权重,对于分对的,exp(-alpha),由于alpha是正的,所以这个数小鱼1,于是分对的样本权重变小了,而分错的exp(alpha),权重增大,而且增大或者减小的程度跟当前分类器的靠谱程度有关,越靠谱(错误率epsilon小,权重alpha大)的分类器对样本重加权的影响越大。然后等所有的轮数跑完后,加权求和得到最终答案。

其他

考虑到最终的综合,对于bagging来说,常用的就是:分类投票,回归平均。投票也分为很多种策略,但是基本思路都是少数服从多数。当这种简单投票没法满足的时候,可以对于weak learner的输出结果,再训练一个分类器,去汇总最终结果,这就是stacking算法:


这里写图片描述

先用样本训练T个基学习器,训练完成后,把样本投入这些基学习器中,每个样本都能得到T个预测,把每个样本的T个预测作为输入,训练一个次级学习器,最终得到结果。

reference: 西瓜书

2018年03月04日23:50:10

我们最想引以为傲的恰恰是我们缺的东西。 —— 作家,芥川龙之介

原文地址:https://www.cnblogs.com/morikokyuro/p/13256790.html