Adaboost训练过程的详解

Adaboost 总结

1、     概述

Adaboost简单来说就是将多个分类器整合成一个分类器,是boosting的扩展和延续。是一种迭代算法,在每一轮加入一个新的弱分类器,直到达到某个预定的足够小的错误率,最后得到一个由多个弱分类器组成的强分类器。每一个样本在训练时都被赋予一个权值,表明它被某个分类器选入训练集的概率。如果某个样本点已经被正确分类,那么在构造下一个训练集时,它的相应的权值就会降低。相反,如果它被错分,那么它的权值就会得到提高。改变数据分布,它根据每次训练集中样本的分类结果,以及上次的总体分类结果,来确定训练样本的权值,将修改权值的新数据作为下一次训练的样本。

 在具体实现上,最初令每个样本的权重都相等,对于第k次迭代操作,我们就根据这些权重来选取样本点,进而训练分类器Ck。然后就根据这个分类器,来提高被它错分的样本的权重,并降低被正确分类的样本权重。然后,权重更新过的样本集被用于训练下一个分类器Ck。整个训练过程如此迭代地进行下去。最后,把所有的分类器Ck线性组合起来。伪代码如图1所示。




图1、adaboost伪代码图

2、     弱分类器的产生





       其中f为特征,为阈值,p指示不等号的方向,x代表一个检测子窗口,对于每个特征f,训练一个弱分类器h,就是确定f的最优阈值,使得这个弱分类器h对所有的训练样本的分类错误率最低。步骤如下:

1)、对于每一个特征f,计算所有样本的特征值,并将其进行排序,对于排好序的表中的每个元素,计算:

(1)全部正样本权重的和t1;

(2)全部负样本权重的和t0;

(3)在此元素之前的所有正样本的权重的和s1;

(4)在此元素之前的所有负样本的权重的和s0;

2)、最后求得每一个元素的分类误差:

      (公式2)

   在表中寻找分类误差r的最小值所对应的元素,将该元素作为最优的阈值,此时一个最优的弱分类器就诞生了。

3、   强分类器的诞生

(1)给定样本集S,T为训练的最大循环次数;

(2)初始化样本的权重;

(3)进行第一次迭代训练得到第一个分类器;

(4)根据上次分类的结果,从新改变样本权重;

(5)将新的样本和上次错分的样本放在一起进行新一轮的训练;

(6)重复(4)和(5),最后得到T个最优弱分类器;

(7)组合T个最优弱分类器得到强分类器:

                   

 

4、   一些参数的求解公式

<1>    ,为第t个弱分类器相对应的权值   

<2>    ,其是第i个弱分类器的带权值分类误差,表示i次更新后样本K的权重。


                                        

<3>样本权重的更新

                                                  



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值