XGBOOST与GBDT区别

本文介绍了XGBoost与GBDT这两种梯度提升树算法的区别,重点讲解了它们的优化方法,包括梯度下降法和牛顿法,并详细阐述了GBDT和XGBoost的目标函数、正则项以及误差函数的二阶泰勒展开。XGBoost通过引入二阶导数和正则项来减少过拟合,优化模型性能。
摘要由CSDN通过智能技术生成

Boosing算法是一种加法模型,它包含一种残差逼近的思想。
F ( x ) = ∑ t = 0 T f t ( x ) F(x)=\sum_{t=0}^{T}f_t(x) F(x)=t=0Tft(x)

GBDT是一种较为经典的梯度提升树算法,包括Xgboost(Xgboost是GBDT的一个变种)。

GBDT 在函数空间中利用梯度下降法进行优化。
Xgboost在函数空间中利用牛顿法进行优化。且相比GBDT,Xgboost加入了正则项,使模型更加不容易过拟合。

简单的说,GBDT与Xgboost都是在泰勒展开式的基础上进行的。不同的是,GBDT的损失函数是一阶导数,而Xgboost是引入了海森矩阵的二阶导数,且加入了正则项。

这里首先介绍下两种优化方法。

优化方法

梯度下降法(Gradient descend method)

在机器学习任务中, 需要最小化损失函数 L ( θ ) L(\theta) L(θ),其中 θ \theta θ是要求解的模型参数。

梯度下降法常用来求解这种无约束最优化问题, 它是一种迭代方法:选取初值 θ 0 \theta^{0} θ0,不断迭代,更新 θ \theta θ的值,进行损失函数的极小化。

梯度下降法利用的一阶泰勒展开。

  1. 迭代公式: θ t = θ t − 1 + Δ θ \theta^{t} = \theta^{t-1} + \Delta\theta θt=θt1+Δθ
  2. L ( θ t ) L(\theta^{t}) L(θt) θ t − 1 \theta^{t-1} θt1处进行一阶泰勒展开
    L ( θ t ) = L ( θ t − 1 + Δ θ ) ≈ L ( θ t − 1 ) + L ′ ( θ t − 1 ) Δ θ L(\theta^{t}) = L(\theta^{t-1} + \Delta\theta) \approx L(\theta^{t-1}) + L^{'}(\theta^{t-1})\Delta\theta L(θt)=L(θt1+Δθ)L(θt1)+L(θt1)Δθ
  3. 要使得 L ( θ t ) < L ( θ t − 1 ) L(\theta^{t}) < L(\theta^{t-1}) L(θt)<L(θt1),可取: Δ θ = − α L ′ ( θ t − 1 ) \Delta\theta = -\alpha L^{'}(\theta^{t-1}) Δθ=αL(θt1),则 θ t = θ t − 1 − α L ′ ( θ t − 1 ) \theta^{t} = \theta^{t-1} - \alpha L^{'}(\theta^{t-1}) θt=θt1αL(θt1)
    这里 α \alpha α是步长,可以通过line search确定,但一般直接赋予一个小的数。
牛顿法(Newton’s method)

L ( θ t ) L(\theta^{t}) L(θt) θ t − 1 \theta^{t-1} θt1处进行二阶泰勒展开
L ( θ t ) ≈ L ( θ t − 1 ) + L ′ ( θ t − 1 ) Δ θ + L ′ ′ ( θ t − 1 ) Δ θ 2 / 2 L(\theta^{t}) \approx L(\theta^{t-1}) + L^{'}(\theta^{t-1})\Delta\theta + L^{''}(\theta^{t-1})\Delta\theta^{2}/2 L(θt)L(θt1)+L(θt1)Δθ+L(θt1)Δθ2/2

为了简化分析过程,假设参数是标量(即 θ \theta θ只有一维),则可将一阶和二阶导数分别记为 g g g h h h:
L ( θ t ) ≈ L ( θ t − 1 ) + g Δ θ + h Δ θ 2 2 L(\theta^{t}) \approx L(\theta^{t-1}) + g\Delta\theta + h\frac{\Delta\theta^{2}}{2} L(θt)L(θt1)+gΔθ+h2Δθ2
要使得 L ( θ t ) L(\theta^{t}) L(θt)极小,即让 g Δ θ + h Δ θ 2 2 g\Delta\theta + h\frac{\Delta\theta^{2}}{2} gΔθ+h2Δθ2极小,

可令 ∂ ( g Δ θ + h Δ θ 2 2 ) ∂ Δ θ = 0 \frac{\partial (g\Delta\theta + h\frac{\Delta\theta^{2}}{2})}{\partial \Delta\theta} = 0 Δθ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值