机器学习笔记_ 提升

来源:互联网 发布:自学java知乎 编辑:程序博客网 时间:2024/05/16 23:43
  • 提升:每一步产生一个弱的预测模型(如决策树),并加权到总的模型中
  • 每一步弱模型的的生成都是依据损失函数的梯度下降方向—梯度提升

提升算法

  • 给定输入向量和输出变量(x1,y1)...(xn,yn), 目标是找到近似函数F(x)使得损失函数L(y,F(x))的损失值最小

  • 最优函数
    F(x)=argminFE(x,y)[L(x,F(x)]

  • F(x)是一族基函数fi(x)

    F(x)=ΣMi=1γifi(x)+const


提升算法推导

  • 需找最优解F(x), 使得损失函数在训练集上的期望最小。

  • 首先,给定常函数F0(x)

    F0(x)=argminγΣni=1L(yi,γ)

  • 贪心算法

    Fm(x)=Fm1(x)+argminfHΣni=1L(yi,Fm1(xi)+f(xi))


梯度近似

  • 使用梯度下降的方法近似计算

  • 给定模型为常数
    F0(x)=argminγΣni=1L(yi,γ)

  • 对于m=1到M

    a 计算伪残差(用梯度来代替正真的残差:真正残差=ymFm1(x))

    rim=[L(yi,F(xi))F(xi)]F(x)=Fm1(x)

    b 使用数据(xi,rim)ni=1计算残差的基函数fm(x)

    c 计算步长

  • 更新模型Fm(x)=Fm1(x)rmfm(xi)



Adaboost

  • 采用指数损失的方式提升


boosting

PAC

http://blog.pluskid.org/?p=821
http://www.cnblogs.com/HappyAngel/p/3495804.html

  • 概率近似正确
  • 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率高,则为强可学习的。
  • 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率仅比随机猜测高,则为弱学习的。
  • 在PAC学习框架下,强可学习和弱可学习是充分必要条件

Adaboost提升算法

  • 每一轮如何改变训练数据的权值或者概率分布:提高错误分类的样本的权值
  • 将弱分类器组合成强分类器:加权多数表决

算法

  • 输入:训练集T=(x1,y1),(x2,y2),...,(xN,yN); y1,+1;
    弱分类算法

  • 输出:最终的分类器

    (1) 初始化训练数据集的权值分布

    D1=(w11,...w1i,...w1N),w1i=1N,i=1,2,...,N

    (2) 对m=1,2,….M

    • 使DmGm(x):X>{1,+1}
    • Gm(x)em=P(Gm(xi)yi)=ΣNi=1wmiI(Gm(xi)yi)
    • Gm(x)αm=12log1emem
    • 更新训练数据的权值
      Dm+1=(wm=1,1,...,wm+i,i,...wm+1,N)
      wm+1,i=wmiZmexp(αmyiGm(xi))
      Zm是规范化因子
      Zm=ΣNi=1wmiexp(αmyiGm(xi))

    (3) 基础分类器的线性组合

    f(x=ΣMm=1αmGm(x))

    (4) 最终分类器

    G(x)=sign(f(x))


Adaboost

  • 加法模型
  • 损失函数为指数函数
  • 学习算法是前向分布算法时的二分类算法
0 0
原创粉丝点击