[机器学习] Adaboost算法流程及原理推导

Adaboost算法是一种迭代算法。其用法是将对于训练同一训练集的多个弱分类器集合,成为一个强分类器。

Adaboost算法实现步骤如下

输入 {(x1,y1),(x2,y2)...(xn,yn)}, ,其中 xiX,yi{1,1}

初始化 D1(i)=1n,i=1,2...n

For t = 1,2…T:

  • 寻找分类器 ht:X{1,1} ,用每个特征 fj 训练一个弱分类器 hj ,可以得到一个加权错误率

    ϵj=t=1mDt,ht(xi)yi
    选取 ϵj 最小的分类器 ht ,最小加权误差率值记作 ϵt

  • 计算权值

    αt=12ln(1ϵtϵt)

  • 更新D

    Dt+1(i)=Dt(i)exp[αtyiht(xi)]Zt
    Zt 为归一化参数

    最终获得的强分类器

    H(x)=sign(t=1Tαtyiht(x))

Adaboost算法原理

从最后的计算公式,可以理解为Adaboost算法最后获得的分类结果是由多个弱分类器加权投票决定的。

而判断最终结果的好坏,是看分类结果与真实结果的差距,即:

lossexp[H(x)]=Ex,y[eyH(x)]
差距越小,表示分类结果越好。而该公式也可以理解为要追求 yH(x) 更大。

后续都是数学证明的过程,公式过多,直接用手写拍照上传。

[机器学习] Adaboost算法流程及原理推导_第1张图片

[机器学习] Adaboost算法流程及原理推导_第2张图片

你可能感兴趣的:(机器学习)