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

来源:互联网 发布:php 房源管理系统 编辑:程序博客网 时间:2024/05/22 09:46

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)更大。

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

这里写图片描述
这里写图片描述
这里写图片描述

0 0
原创粉丝点击