梯度提升思想

1.模型要素

1.提升模型(加法模型)

Fm(xi)=j=1mαjGj(xi)=Fm1(xi)+αmGm(xi)
Fm(xi)=j=1mTj=Fm1(xi)+Tm(xi)
公式1是Adaboost模型, Gm{1,1} αm 是公式的权重(唯一)。公式2是提升树模型, Tm=Kk=1αmkI(xiRmk) 输出是某叶节点 Rmk 的取值 αmk (数量由叶节点数目决定)。对于二分类问题,提升树是Adabost的一种特殊情况,提升树叶节点的取值为带符号的Adaboost权重 ±αm

2.参数
  1. 二分类(以Adaboost为例): 基函数(分类器) Gm(x) (输出为-1,1),权重 αm (每个分类器唯一)
  2. 提升树(以回归树为例):树结构 Rmk (对应叶子节点,类似 Gm ),节点权重 αmk
3.目标函数(此处即为损失函数)

提升模型有三种损失函数,对于分类问题(adaboost)用指数损失函数

L(y,Fm)=i=1nexp(yiFm(xi))
回归问题(提升回归树)用平方差损失函数
L(y,Fm)=i=1n(yiFm(xi))2
一般决策问题用一般损失函数。

2.模型训练(求解参数)

  1. 模型目标函数为其损失函数,训练目的是使的目标函数最小。此模型使用梯度提升算法,每一步弱预测模型依据损失函数的梯度方向)
  2. 思想:对目标函数泰勒展开,仅考虑一阶导数的情况。对 L(y,Fm(x)) 使用泰勒展开近似
    L(y,Fm(x))=L(y,Fm1(x)+fm(x))L(y,Fm1)+L(y,Fm1)Fm1fm(x)
    fm(x) 方向取 [L(y,Fx)Fx]Fx=Fm1 时,梯度下降最快(因为正交,梯度下降法),此时更新后的模型应为
    Fm(x)=Fm1λmL(y,Fm1)Fm1
    其中 λm 为步长,最终 fm=λmL(y,Fm1)Fm1 ,在回归问题中 fm 为基函数,分类问题为基函数+分类器权重
  3. 由上面的分析可得提升方法的一般步骤为:
    1)计算伪残差 rmi=[L(yi,Fx)Fx]Fx=Fm1 ,其中i表示样本号,m表示基函数(分类器)号
    2)基于 rmi,i1,2,..,n ,构建新函数 f¯m (分类问题为基函数,CART回归树输出为叶子节点)
    3)将 f¯m 带入损失函数,求解步长 λm=argminλL(y,Fm1λf¯m) (分类:分类器权重;回归:叶节点取值)
    4)更新 Fm=Fm1+λf¯m

3. Adaboost推导

  1. 模型为加法模型,损失函数为指数损失函数,参数为分类器 Gm(x){1,1} 和分类器权重 αm
  2. 梯度提升推导:
    1)对损失函数 L(y,fm1) 求梯度:
    rmi=yiexp(yifm1)=yiw¯mi
    可理解为带权重的样本,对模型影响度不同
    2)根据 rm 创建新的基函数 Gm ,使 Gm rm 尽量接近
    Gm=argminGi=1nw¯miI(yiG(xi))

    3)将基函数 Gm 带入损失函数求分类器权重(步长) αm
    αm=argminαi=1nw¯miexp(yiαGm(xi))
    损失函数变为仅关于 α 的函数,对 α 求导得
    αm=12log1ememem=ni=1w¯miI(yiGm(xi))i=1nw¯mi=i=1nwmiI(yiGm(xi))
    3)更新模型 fm(x)=fm1(x)+αmGm(x) ,继续重复1),其中 w¯m+1,i=w¯m,iexp(yiαmGm(xi))
  3. 前向分布算法推导
    损失函数可写为:
    L(y,fm)=L(y,fm1+αmGm)=i=1nexp(yi(fm1+αmGm(xi)))=i=1nw¯miexp(yiαG(xi))w¯mi=exp(yifm1(xi)
    然后最小化损失函数,与2中2)形式相同
  4. 算法性能:误差率与分类器个数成指数关系

4.GBDT回归树推导

1)损失函数为平方损失,对损失函数求梯度,得到伪残差:

rmi=yiFm1(xi)

2)对 rmi 拟合一个回归树,得到第m棵树的叶节点区域 Rmk
(Rm,αm)=argminR,αi=1n(rmiTm(xi))2
3)将给出的 Rmk 带入损失函数,求极小值
(αm1,αm2)=argminα[xiRm1(yiα1)2+xiRm2(yiα2)2]
得到 α 为每个叶节点区域中所有 yi 的均值.
4)遍历所有可能的切分点(将所有 yi 都尝试作为切分点),得到所有叶节点区域 Rmk ,重复2)3)步,找到最优解。合并形式为 (Rm,αm)=argminRni=1[Kk=1minαxiRk(yiαk)2]
5)更新 Fm(xi)=Fm1+Tm=Fm1(xi)+Kk=1αmkI(xiRmk)
6)其中2)同样可用前向分布算法得出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值