美文网首页
机器学习经典算法AdaBoost算法思路理解(超详细附代码)

机器学习经典算法AdaBoost算法思路理解(超详细附代码)

作者: KyleLou | 来源:发表于2019-03-20 23:10 被阅读0次

    简介
    Adaboost算法是一种提升方法,将多个弱分类器,组合成强分类器。
    它的自适应在于:前一个弱分类器分错的样本的权值(样本对应的权值)会得到加强,权值更新后的样本再次被用来训练下一个新的弱分类器。在每轮训练中,用总体(样本总体)训练新的弱分类器,产生新的样本权值、该弱分类器的话语权,一直迭代直到达到预定的错误率或达到指定的最大迭代次数。
    总体——样本——个体三者间的关系需要搞清除
    总体:N 样本:{ni}i从1到M 个体:如n1=(1,2),样本n1中有两个个体。

    算法原理
    (1)初始化训练数据(每个样本)的权值分布:如果有N个样本,则每一个训练的样本点最开始时都被赋予相同的权重:1/N。
    (2)训练弱分类器。具体训练过程中,如果某个样本已经被准确地分类,那么在构造下一个训练集中,它的权重就被降低;相反,如果某个样本点没有被准确地分类,那么它的权重就得到提高。同时,得到弱分类器对应的话语权。然后,更新权值后的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
    (3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,分类误差率小的弱分类器的话语权较大,其在最终的分类函数中起着较大的决定作用,而分类误差率大的弱分类器的话语权较小,其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的比例较大,反之较小。

    算法流程
    第一步:
    初始化训练数据(每个样本)的权值分布。每一个训练样本,初始化时赋予同样的权值w=1/N。N为样本总数。


    image.png

    D1表示,第一次迭代每个样本的权值。w11表示,第1次迭代时的第一个样本的权值。
    N为样本总数。

    第二步:进行多次迭代,m=1,2….M。m表示迭代次数。
    a)使用具有权值分布Dm(m=1,2,3…N)的训练样本集进行学习,得到弱的分类器。


    image.png

    该式子表示,第m次迭代时的弱分类器,将样本x要么分类成-1,要么分类成1.那么根据什么准则得到弱分类器?
    准则:该弱分类器的误差函数最小,也就是分错的样本对应的 权值之和,最小。


    image.png

    b)计算弱分类器Gm(x)的话语权,话语权am表示Gm(x)在最终分类器中的重要程度。其中em,为上步中的εm(误差函数的值)


    image.png

    该式是随em减小而增大。即误差率小的分类器,在最终分类器的 重要程度大。
    c)更新训练样本集的权值分布。用于下一轮迭代。其中,被误分的样本的权值会增大,被正确分的权值减小。


    image.png

    Dm+1是用于下次迭代时样本的权值,Wm+1,i是下一次迭代时,第i个样本的权值。
    其中,yi代表第i个样本对应的类别(1或-1),Gm(xi)表示弱分类器对样本xi的分类(1或-1)。若果分对,yi*Gm(xi)的值为1,反之为-1。其中Zm是归一化因子,使得所有样本对应的权值之和为1.


    image.png

    第三步迭代完成后,组合弱分类器。

    image.png

    然后,加个sign函数,该函数用于求数值的正负。数值大于0,为1。小于0,为-1.等于0,为0.得到最终的强分类器G(x)


    image.png

    优点

    (1)精度很高的分类器
    (2)提供的是框架,可以使用各种方法构建弱分类器
    (3)简单,不需要做特征筛选
    (4)不用担心过度拟合

    实际应用

    (1)用于二分类或多分类
    (2)特征选择
    (3)分类人物的baseline

    相关文章

      网友评论

          本文标题:机器学习经典算法AdaBoost算法思路理解(超详细附代码)

          本文链接:https://www.haomeiwen.com/subject/yswxvqtx.html