集成学习之bagging和boosting

 

 

集成算法目标:集成算法会考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。

 

1、集成学习概述

 

集成学习(Ensemble learning)通过构建并结合多个学习器来完成学习任务。一般结构为:先产生一组“个体学习器”,再用某种策略将它们结合起来。但要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有多样性,即个体学习器间具有差异。多个模型集成成为的模型叫做集成评估器(ensemble estimator),组成集成评估器的每个模型都叫做基评估器(base estimator)。

 

根据个体学习器的生成方式,目前的集成学习方法大致可以分为2类:

1.Bagging(装袋法):个体学习器间不存在强依赖关系、可同时生成的并行化方法。

2.Boosting(提升法):个体学习器间存在强依赖关系、必须串行生成的序列化方法。

 

注:所谓串行生成的序列化方法就是除了训练第一个之外,其他的学习器学习都需要依赖于前面生成的学习的结果。

 

2、集成学习之Bagging

 

Bagging算法原理图如下:

 

image

 

算法过程如下:

1.自助采样:假设训练数据集包含m个样本,随机从样本集中可放回的抽取m次,得到与训练集数量相同的训练集。经过K轮自助采样,可以得到K个包含m个训练样本的采样集。

2.模型训练:基于每个采样集训练出一个最优模型(基学习器),K个训练集就得到K个训练模型。

3.模型输出:K个基学习器进行组合,得到集成模型。分类问题:对K个模型采取投票的方式得到分类结果。回归问题:对K个模型的值取平均得到回归值。

 

即对于$m$个样本的原始训练集,我们每次先随机采集一个样本放入采样集,接着把该样本放回,这样采集$m$次,最终可以得到$m$个样本的采样集,由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的。

 

对于一个样本,它每次被采集到的概率是$\frac{1}{m}$。不被采集到的概率为$1-\frac{1}{m}$。如果m次采样都没有被采集中的概率是$(1-\frac 1 m)^m$。则

 
$$\lim\limits_{x\rightarrow\infty}(1-\frac 1 m)^m\rightarrow\frac{1}{e}\approx0.368$$
 

即当抽样的样本量足够大时,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采集中。对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据未参与训练集模型的拟合,可以用来检测模型的泛化能力。

 

3、集成学习之Boosting

 

Boosting算法原理图如下:

 

image

 

算法过程如下:

1.从初始训练集训练出一个基学习器。

2.根据基学习器的表现对样本分布进行调整,使得先前的基学习器做错的训练样本在后续收到更多的关注,然后基于调整后的样本分布来训练下一个基学习器。

3.如此重复进行训练,直至基学习器数目达到实现指定的值T,或整个集成结果达到退出条件,然后将这些学习器进行加权结合。(每一轮训练都提升那些错误率小的基础模型权重,同时减小错误率高的模型权重。)

 

4、集成学习结合策略

集成学习得到多个学习器后,需要用结合策略对多个结果进行分类或汇总输出。其主要会用到3种方法:平均法、投票法和学习法。

 

4.1 平均法

平均法主要用于数值类的回归预测。假定我得到的$K$个弱学习器是$h_1,h_2,h_3...h_k$

 

1.完全平均

将所有弱学习的值求算数平均值,即$H(x)=\frac{1}{K}\sum_{i=1}^K{h_i(x)}$

 

2.加权平均

给每个学习器设定一个权重求加权平均值,即$H(x)=\sum_{i=1}^K{w_i}{h_i(x)}$,且$0\leq{w_i}\leq{1},\sum_{i=1}^K{w_i}=1$。

 

4.2 投票法

 

投票法主要用于分类问题的预测,即是少数服从多数。主要有以下三种方法:

相对多数投票法:也就是少数服从多数,即预测结果中票数最高的分类类别。如果不止一个类别获得最高票,则随机选择一个作为最终类别。

绝对多数投票法:即不光要求获得最高票,还要求票过半数。

加权投票法:每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

 

4.3 学习法

 

通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一最终的预测结果。即是将K个学习器的分类结果再次作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。

 

5、Bagging和Boosting差异性

 

1.训练样本集

Bagging:训练集是有放回抽样,从原始集中选出的K组训练集是相互独立的。

Boosting:每一次迭代的训练集不变。

 

2.训练样本权重

Bagging:每个训练样本的权重相等,即1/N。

Boosting:根据学习器的错误率不断调整样例的权值,错误率越大,权值越大。

 

3.预测函数的权重

Bagging:K组学习器的权重相等,即1/K。

Boosting:学习器性能好的分配较大的权重,学习器性能差的分配较小的权重。

 

4.并行计算

Bagging:K组学习器模型可以并行生成。

Boosting:K组学习器只能顺序生成,因为后一个模型的样本权值需要前一个学习器模型的结果。

posted @ 2020-02-07 11:10  雨中漫步人生  阅读(449)  评论(0编辑  收藏  举报