Adaboost集成算法

一、Adaboost算法原理

        从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

        使用最广泛的Adaboost弱学习器是决策树和神经网络。对于决策树,Adaboost分类用了CART分类树。

二、Adaboost二分类算法流程

三、AdaBoost二分类的实例

四、AdaBoost的损失函数(推导系数a和权重w)

        Adaboost算法还有另一个解释:Adaboost是模型为加法模型,学习算法为前向分步学习算法,损失函数为指数函数的分类问题。

        模型为加法模型好理解,我们的最终的强分类器是若干个弱分类器加权平均而得到的。

        前向分步学习算法也好理解,我们的算法是通过一轮轮的弱学习器学习,利用前一个弱学习器的结果来更新后一个弱学习器的训练集权重。也就是说,第k-1轮的强学习器为:

        而第k轮的强学习器为:

        上两式一比较可以得到:

        可见强学习器的确是通过前向分步学习算法一步步而得到的。

         前向分步算法的损失函数是指数函数:

则Adaboost算法的损失函数为指数函数,即定义损失函数为:

利用前向分步学习算法的关系可以得到损失函数为:

五、Adaboost多元分类算法

        原理和二元分类类似,最主要区别在弱分类器的系数上。比如Adaboost SAMME算法,它的弱分类器的系数:

        其中R为类别数。从上式可以看出,如果是二元分类,R=2,和我们上面的二元分类算法中的弱分类器的系数一致。

六、Adaboost算法的正则化

        为了防止Adaboost过拟合,我们通常也会加入正则化项,这个正则化项我们通常称为步长(learning rate)。定义为ν,对于前面的弱学习器的迭代:

如果我们加上了正则化项,则有:

        ν的取值范围为0<ν≤1。对于同样的训练集学习效果,较小的ν意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。


参考文献:

《统计方法学》李航

Adaboost算法原理小结

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自:http://www.cnblogs.com/pinard/p/6133937.html 在集成学习原理小结...
    孙志杰_6bb7阅读 1,762评论 0 2
  • 长安漂泊本无根, 朱雀街头旧迹存。 别后浮沉音讯杳, 重逢对饮应无言。
    豫西笑笑生阅读 313评论 0 1
  • 001圆满 我们每个人都生而圆满,并不是破损的圆,请坚信这一点 002全神贯注 就是看电视入迷,打游戏入坑,如入无...
    Silvia花花阅读 508评论 2 3
  • 小时候用铅笔写字,写错了随时可以擦,长大了用钢笔写字,写错了就有点发蒙。对于有完美情结的人,那段过渡期恐怕更是难过...
    狐晓十三阅读 522评论 0 0
  • 前几天闲着改了改原先的数据库查询工具,勉强基本够用,虽然还没有加入事务。感觉实现的有些问题,并发考虑的方式错了,先...
    yzn2015阅读 526评论 1 1