梯度提升(Gradient Boosting )

23 篇文章 0 订阅
12 篇文章 0 订阅

梯度提升方法的特点在于损失函数比较复杂,难以优化。
一般的提升方法的损失函数比较简单。
比如Adaboost中,提升模型是多个弱基学习器的加权和,当基于指数损失函数和前向分步算法优化模型时,最终推导结果相当于:每一步仅需要学习当前基学习器使得所有样本的加权损失最小。
或者在一般提升回归树中,提升模型是多个弱基学习器的,当基于平方误差损失函数和前向分步算法优化模型时,最终推导结果相当于于:每一步仅需学习当前基学习器使其输出为上一步模型的残差。
而在损失函数比较复杂时,难以优化时,可以利用泰勒展示将损失函数近似展开。
C ( θ M ) = L ( y , f M ( x ) ) C(\theta_M)=L(y,f_M(x)) C(θM)=L(y,fM(x))
其 中 f M ( x ) = f M − 1 ( x ) + T ( x ; θ M ) 其中 f_M(x)=f_{M-1}(x)+T(x;\theta_M) fM(x)=fM1(x)+T(x;θM)
C ( θ M ) = L ( y , f M − 1 ( x ) + T ( x ; θ M ) ) C(\theta_M)=L(y,f_{M-1}(x)+T(x;\theta_M)) C(θM)=L(y,fM1(x)+T(x;θM))
当把代价函数 C C C看做 f M ( x ) f_{M}(x) fM(x)的函数时,记 T M = T ( x ; θ M ) T_M=T(x;\theta_M) TM=T(x;θM),则:
C ( f M ( x ) ) = C ( f M − 1 ( x ) + T M ) C(f_{M}(x))=C(f_{M-1}(x)+T_M) C(fM(x))=C(fM1(x)+TM)
泰勒近似展开得:
C ( f M − 1 ( x ) + T M ) = C ( f M − 1 ( x ) ) + ∂ C ∂ f f = f M − 1 ( x ) T M C(f_{M-1}(x)+T_M) = C(f_{M-1}(x))+\frac{\partial C}{\partial f}_{f=f_{M-1}(x)}T_M C(fM1(x)+TM)=C(fM1(x))+fCf=fM1(x)TM

此时 C ( f M − 1 ( x ) ) C(f_{M-1}(x)) C(fM1(x)) ∂ C ∂ f f = f M − 1 ( x ) \frac{\partial C}{\partial f}_{f=f_{M-1}(x)} fCf=fM1(x)都已知,如果要 C C C下降最快,则令:
T M = − α ∂ C ∂ f f = f M − 1 ( x ) T_M=-\alpha\frac{\partial C}{\partial f}_{f=f_{M-1}(x)} TM=αfCf=fM1(x)
T M T_M TM与损失函数梯度反向即可。 α \alpha α为学习率。

https://blog.csdn.net/youhuakongzhi/article/details/94488888
https://www.cnblogs.com/zhubinwang/p/5170087.html
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值