十大经典预测算法(八)---adboost

一、基本原理

  AdaBoost是adaptive boosing的缩写,它是一种基于Boosting框架的算法。下图为该算法的迭代过程。

AdaBoost从原始数据集D1开始学习第个模型,经过三轮的迭代,得到三个弱分类器,每一轮的迭代都要评估下模型的分类误差,在一轮时把分错的样本进行加权,最后把三个分类器按照一定的权重组合起来得到一个强分类器。

 

从上图可以看出,每一个弱分类器的模型都很简单,示例图中的它们只是一个一层的决策树,每一个弱分类器在融合的时候都有一个权重,三个弱分类器融合后,变成一个能力更强的复杂模型。

  

  由上图可知,AdaBoost是由多个弱分类器组成,每次由一个弱分类器训练数据集,然后把这个训练器分错的数据集权重加大,没分错的减小权重,再由下一个弱学习器训练这个数据集,这样一直迭代下去,最后融合成一个最强的学习器。

  AdaBoost算法构建过程,

  1、假设训练集T = {(X1,Y1),(X2,Y2)……(Xn,Yn)}

  2、初始化训练数据权重分布,

    D1 = (Wl1,Wl2……Wln),Wli = 1/n,i=1,2……n

  3、使用具有权值分布的Dm的训练集学习,得到基本分类器

      

  4、计算Gm(x)在训练集上的分类误差

    

 

  5、计算Gm(x)模型的权重系数am

    

  6、权重训练集的权值分布

    

  7、这里Zm是规范化因子(规一化)

    

  8、构建分类器的线性组合

    

  9、得到最终分类器

    

AdaBoost算法推导

  

算法的直观理解

   

 

 

 

 

 

 

 

 

 AdaBoost小结

  1、AdaBoost是一种Boosting的融合算法,它通过级联的方式,把一系列的弱学习模型融合在一起变成一个强分类器。

  2、AdaBoost既可以做分类,也可以做回归

  3、AdaBoost做分类模型的时候,默认的基学习类型是决策树。

   4、AdaBoost的多个子模型通过加权求和的方式融合,并不是简单的求平均,子模型的权重取决于子模型的误差率大小,误差率越小,权值越大

 

原文地址:https://www.cnblogs.com/baoxuhong/p/10252438.html