集成学习(ensemble learning)(四)


该篇为集成学习的第四篇,主要关注GDBT(Gradient Boosting Decison Tree, 梯度提升树)。在本文的第三部分中,从参数空间到函数空间的角度出发,理解GBDT+XGBoost的原理。

从传送下之前的文章:

一、GBDT概述

GBDT 是一种迭代的前向分布的算法,其弱分类器为CART回归树。

在GBDT的迭代中,假设前一轮迭代得到的强学习器是 f t − 1 ( x ) f_{t−1}(x) ft1(x),利用前向分布算法,本步的模型可写成 f t ( x ) = f t − 1 ( x ) + h t ( x ) f_t(x)=f_{t-1}(x)+h_t(x) ft(x)=ft1(x)+ht(x),损失函数是 L ( y , f t ( x ) ) L(y,f_{t}(x)) L(y,ft(x))

本轮迭代的目标是找到一个CART回归树模型的弱学习器 h t ( x ) h_t(x) ht(x),让本轮的损失函数 L ( y , f t ( x ) = L ( y , f t − 1 ( x ) + h t ( x ) ) L(y,f_t(x)=L(y,f_{t−1}(x)+h_t(x)) L(y,ft(x)=L(y,ft1(x)+ht(x)) 最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小

GBDT主要的优点

  • 可以灵活处理各种类型的数据,包括连续值和离散值。
  • 在相对少的调参时间情况下,预测的准确率也可以比较高。这个是相对SVM来说的。
  • 使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

GBDT的主要缺点

  • 由于弱学习器之间存在依赖关系,难以并行训练数据。 不过可以通过自采样的SGBT来达到部分并行。

二、GDBT原理

1、负梯度拟合

目标:让样本的损失尽量变得更小,何如解决损失函数拟合方法的问题?

Freidman提出了用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树。第 t t t 轮的第 i i i 个样本的损失函数的负梯度表示为
(1) r t i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{ti}=- \left[ \frac{\partial{L(y_i,f(x_i))}}{\partial f(x_i)} \right]_{f(x)=f_{t-1}(x)} \tag{1} rti=[f(xi)L(yi,f(xi))]f(x)=ft1(x)(1)
利用 ( x i , r t i ) , i = 1 , 2 , . . . , m (x_i,r_{ti}),i=1,2,...,m (xi,rti)i=1,2,...,m,可以拟合一颗CART回归树,得到第 t t t 颗回归树,其对应的叶节点区域 R t j , j = 1 , 2 , . . . , J R_{tj},j=1,2,...,J Rtj,j=1,2,...,J。其中 J J J 为叶子节点的个数。

针对每一个叶子节点里的样本,求出使损失函数最小,也就是拟合叶子节点最好的的输出值

c t j c_{tj} ctj 如下:
(2) c t j = a r g   m i n ⎵ c ∑ x i ∈ R t j L ( y i , f t − 1 ( x i ) + c ) c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}L(y_i,f_{t-1}(x_i)+c)\tag{2} ctj=c arg minxiRtjL(yi,ft1(xi)+c)(2)
则本轮的决策树拟合函数如下:
(3) h t ( x ) = ∑ j = 1 J c t j I ( x ∈ R t j ) h_t(x)=\sum_{j=1}^Jc_{tj}I(x\in R_{tj})\tag{3} ht(x)=j=1JctjI(xRtj)(3)
从而本轮最终得到的强学习器的表达式如下:
(4) f t ( x ) = f t − 1 ( x ) + ∑ j = 1 J c t j I ( x ∈ R t j ) f_t(x)=f_{t-1}(x)+\sum_{j=1}^{J}c_{tj}I(x\in R_{tj})\tag{4} ft(x)=ft1(x)+j=1JctjI(xRtj)(4)

一种通用的拟合损失误差的办法:通过损失函数的负梯度来拟合,则无论是分类问题还是回归问题,均可通过其损失函数的负梯度的拟合,就可以用GBDT来解决我们的分类回归问题。区别仅仅在于损失函数不同所导致的负梯度不同。

2、GBDT回归算法

输入:训练集样本 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) T={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} T=(x1,y1),(x2,y2),...,(xm,ym), 最大迭代次数 T T T,损失函数 L L L
输出:强学习器 f ( x ) f(x) f(x)

(1)初始化弱学习器
f 0 ( x ) = a r g   m i n ⎵ c ∑ i = 1 m L ( y i , c ) f_0(x)=\underbrace{arg\ min}_c\sum_{i=1}^mL(y_i,c) f0(x)=c arg mini=1mL(yi,c)
(2) 对迭代轮数 t = 1 , 2 , . . . , T t=1,2,...,T t=1,2,...,T 有:
    a) 对样本 i = 1 , 2 , . . . , m i=1,2,...,m i=1,2,...,m,计算负梯度
r t i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) r_{ti}=- \left[ \frac{\partial{L(y_i,f(x_i))}}{\partial f(x_i)} \right]_{f(x)=f_{t-1}(x)} rti=[f(xi)L(yi,f(xi))]f(x)=ft1(x)
    b) 利用 ( x i , r t i ) , i = 1 , 2 , . . . , m (x_i,r_{ti}),i=1,2,...,m (xi,rti)i=1,2,...,m,可以拟合一颗CART回归树,得到第 t t t 颗回归树,其对应的叶节点区域 R t j , j = 1 , 2 , . . . , J R_{tj},j=1,2,...,J Rtj,j=1,2,...,J。其中 J J J 为叶子节点的个数。
    c) 对叶子区域 j = 1 , 2 , . . . , J j=1,2,...,J j=1,2,...,J 计算最佳拟合值:
c t j = a r g   m i n ⎵ c ∑ x i ∈ R t j L ( y i , f t − 1 ( x i ) + c ) c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}L(y_i,f_{t-1}(x_i)+c) ctj=c arg minxiRtjL(yi,ft1(xi)+c)
    d) 更新强学习器
h t ( x ) = ∑ j = 1 J c t j I ( x ∈ R t j ) h_t(x)=\sum_{j=1}^Jc_{tj}I(x\in R_{tj}) ht(x)=j=1JctjI(xRtj)

(3)得到强学习器 f ( x ) f(x) f(x) 的表达式
f ( x ) = f T ( x ) = f 0 ( x ) + ∑ t = 1 T ∑ j = 1 J c t j I ( x ∈ R t j ) f(x)=f_T(x)=f_{0}(x)+\sum_{t=1}^T\sum_{j=1}^{J}c_{tj}I(x\in R_{tj}) f(x)=fT(x)=f0(x)+t=1Tj=1JctjI(xRtj)

3、GBDT分类算法

由于样本输出不是连续的值,而是离散的类别,导致我们无法直接从输出类别去拟合类别输出的误差

解决方法

  • 使用指数损失函数。GBDT退化为Adaboost算法。
  • 对数似然损失函数。用类别的预测概率值和真实概率值的差来拟合损失。

本文仅关注对数似然损失函数的GBDT分类。

(1)二元GBDT分类算法

对于二元GBDT,如果用类似于 Logistic Regression 的对数似然损失函数,则损失函数为:
L ( y , f ( x ) ) = l o g ( 1 + e x p ( − y f ( x ) ) ) L(y,f(x))=log(1+exp(-yf(x))) L(y,f(x))=log(1+exp(yf(x)))
其中, y ∈ { + 1 , − 1 } y∈\{+1,-1\} y{+1,1}。则此时的负梯度误差为
r t i = − [ ∂ L ( y , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f t − 1 ( x ) = y i 1 + e x p ( y i f ( x i ) ) r_{ti}=-\left[\frac{∂L(y,f(x_i))}{∂f(x_i)}\right]_{f(x)=f_{t-1}(x)}=\frac{y_i}{1+exp(y_if(x_i))} rti=[f(xi)L(y,f(xi))]f(x)=ft1(x)=1+exp(yif(xi))yi
对于生成的决策树,我们各个叶子节点的最佳负梯度拟合值为
c t j = a r g   m i n ⎵ c ∑ x i ∈ R t j l o g ( 1 + e x p ( − y i f t − 1 ( x i ) + c ) ) ) c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}log(1+exp(-y_if_{t-1}(x_i)+c))) ctj=c arg minxiRtjlog(1+exp(yift1(xi)+c)))
由于上式比较难优化,我们一般使用近似值代替
c t j = ∑ x i ∈ R t j r t j ∑ x i ∈ R t j ∣ r t j ∣ ( 1 − ∣ r t j ∣ ) c_{tj}=\frac{\sum_{x_i\in R_{tj}}r_{tj}}{\sum_{x_i\in R_{tj}}|r_{tj}|(1-|r_{tj}|)} ctj=xiRtjrtj(1rtj)xiRtjrtj
除了负梯度计算和叶子节点的最佳负梯度拟合的线性搜索,二元GBDT分类和GBDT回归算法过程相同。

(2)多元GBDT分类算法

多元GBDT要比二元GBDT复杂一些,对应的是多元逻辑回归和二元逻辑回归的复杂度差别。假设类别数为K,则此时我们的对数似然损失函数为:
L ( y , f ( x ) ) = − ∑ k = 1 K y k l o g p k ( x ) L(y,f(x))=-\sum_{k=1}^Ky_klogp_k(x) L(y,f(x))=k=1Kyklogpk(x)
其中,如果样本输出类别为 k k k,则 y k = 1 y_k=1 yk=1。第 k k k 类的概率 p k ( x ) p_k(x) pk(x) 的表达式为:
p k ( x ) = e x p ( f k ( x ) ) ∑ l = 1 K e x p ( f l ( x ) ) p_k(x)=\frac{exp(f_k(x))}{\sum_{l=1}^Kexp(f_l(x))} pk(x)=l=1Kexp(fl(x))exp(fk(x))
集合上两式,我们可以计算出第 t t t 轮的第 i i i 个样本对应类别 l l l 的负梯度误差为
r t i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f l , t − 1 ( x ) = y i l − p l , t − 1 ( x i ) r_{ti}=-\left[\frac{∂L(y_i,f(x_i))}{∂f(x_i)}\right]_{f(x)=f_{l,t-1}(x)}={y_{il}}-p_{l,t-1}(x_i) rti=[f(xi)L(yi,f(xi))]f(x)=fl,t1(x)=yilpl,t1(xi)
观察上式可以看出,其实这里的误差就是样本 i i i 对应类别l的真实概率和 t − 1 t−1 t1 轮预测概率的差值。
对于生成的决策树,我们各个叶子节点的最佳负梯度拟合值为
c t j l = a r g   m i n ⎵ c j l ∑ i = 0 m ∑ k = 1 K L ( y k , f t − 1 , l ( x ) + ∑ j = 0 J c j l I ( x i ∈ R t j ) ) c_{tjl}=\underbrace{arg\ min}_{c_{jl}}\sum_{i=0}^m\sum_{k=1}^KL(y_k,f_{t-1,l}(x)+\sum_{j=0}^Jc_{jl}I(x_i\in R_{tj})) ctjl=cjl arg mini=0mk=1KL(yk,ft1,l(x)+j=0JcjlI(xiRtj))
由于上式比较难优化,我们一般使用近似值代替
c t j l = K − 1 K ∑ x i ∈ R t j l r t j l ∑ x i ∈ R t i l ∣ r t i l ∣ ( 1 − ∣ r t i l ∣ ) c_{tjl}=\frac{K-1}{K}\frac{\sum_{x_i\in R_{tjl}}r_{tjl}}{\sum_{x_i\in R_{til}}|r_{til}|(1-|r_{til}|)} ctjl=KK1xiRtilrtil(1rtil)xiRtjlrtjl

除了负梯度计算和叶子节点的最佳负梯度拟合的线性搜索,多元GBDT分类和二元GBDT分类以及GBDT回归算法过程相同。

4、GBDT常用损失函数

(1)分类任务

对于分类算法,其损失函数一般有 对数损失函数指数损失函数 两种:

指数损失函数
L ( y , f ( x ) ) = e x p ( − y f ( x ) ) L(y,f(x))=exp(−yf(x)) L(y,f(x))=exp(yf(x))
其负梯度计算和叶子节点的最佳负梯度拟合参见Adaboost原理篇。

对数损失函数——见2.3.1和2.3.2

  • 二元分类
  • 多元分类

(2)回归任务

常用的损失函数为均方差、绝对损失、Huber损失和分位数损失

  • 均方差损失——最常见
    L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L(y,f(x))=(y-f(x))^2 L(y,f(x))=(yf(x))2

  • 绝对损失
    L ( y , f ( x ) ) = ∣ y − f ( x ) ∣ L(y,f(x))=|y-f(x)| L(y,f(x))=yf(x)
    其对应负梯度误差为:
    s i g n ( y i − f ( x i ) ) sign(y_i-f(x_i)) sign(yif(xi))

  • Huber损失
    Huber损失是均方差和绝对损失的折衷产物,对于远离中心的异常点,采用绝对损失,而中心附近的点采用均方差。这个界限一般用分位数点度量。损失函数如下:
    L ( y , f ( x ) ) = { 1 2 ( y − f ( x ) ) 2 , if  ∣ y − f ( x ) ∣ ≤ δ δ ( ∣ y − f ( x ) ∣ − δ 2 ) , if  ∣ y − f ( x ) ∣ > δ L(y,f(x))= \begin{cases} \frac{1}{2}(y-f(x))^2, & \text {if $|y-f(x)|\leq\delta$} \\ \delta(|y-f(x)|-\frac{\delta}{2}), & \text{if $|y-f(x)|>\delta$} \end{cases} L(y,f(x))={21(yf(x))2,δ(yf(x)2δ),if ∣yf(x)δif ∣yf(x)>δ
    对应的负梯度误差为:
    r ( y i , f ( x i ) ) = { y i − f ( x i ) , if  ∣ y − f ( x ) ∣ ≤ δ δ s i g n ( y i − f ( x i ) ) , if  ∣ y − f ( x ) ∣ > δ r(y_i,f(x_i))= \begin{cases} y_i-f(x_i), & \text {if $|y-f(x)|\leq\delta$} \\ \delta sign(y_i-f(x_i)), & \text{if $|y-f(x)|>\delta$} \end{cases} r(yi,f(xi))={yif(xi),δsign(yif(xi)),if ∣yf(x)δif ∣yf(x)>δ

  • 分位数损失
    它对应的是分位数回归的损失函数,表达式为
    L ( y , f ( x ) ) = ∑ y ≥ f ( x ) θ ∣ y − f ( x ) ∣ + ∑ y &lt; f ( x ) ( 1 − θ ) ∣ y − f ( x ) ∣ L(y,f(x))=\sum_{y\geq f(x)}\theta|y-f(x)|+\sum_{y&lt;f(x)}(1-\theta)|y-f(x)| L(y,f(x))=yf(x)θyf(x)+y<f(x)(1θ)yf(x)
    其中 θ θ θ 为分位数,需要在回归前指定。对应的负梯度误差为:
    r ( y i , f ( x i ) ) = { θ , if  y i ≥ f ( x i ) θ − 1 , if  y i &lt; f ( x i ) r(y_i,f(x_i))= \begin{cases} \theta, &amp; \text {if $y_i\geq f(x_i)$} \\ \theta-1, &amp; \text{if $y_i &lt; f(x_i)$} \end{cases} r(yi,f(xi))={θ,θ1,if yif(xi)if yi<f(xi)

对于Huber损失和分位数损失,主要用于健壮回归,也就是减少异常点对损失函数的影响。

5、GBDT的正则化

GBDT的正则化主要有三种方式。

第一种:设置步长(learning rate)
定义为 ν \nu ν,对于前面的弱学习器的迭代
f k ( x ) = f k − 1 ( x ) + h k ( x ) f_k(x)=f_{k−1}(x)+h_k(x) fk(x)=fk1(x)+hk(x)
加上了正则化项,则有
f k ( x ) = f k − 1 ( x ) + ν h k ( x ) f_k(x)=f_{k−1}(x)+\nu h_k(x) fk(x)=fk1(x)+νhk(x)
其中 ν \nu ν 的取值范围为 0 &lt; ν ≤ 1 0&lt;\nu\leq1 0<ν1。对于同样的训练集学习效果,较小的 ν \nu ν 意味着需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。

第二种:子采样比例(subsample)
子采样比例(subsample):取值为 ( 0 , 1 ] (0,1] (0,1]。注意:这里是 无放回抽样
选择小于1的比例可以减少方差,即防止过拟合,但是会增加样本拟合的偏差,因此取值不能太低。推荐在 [ 0.5 , 0.8 ] [0.5, 0.8] [0.5,0.8] 之间。

使用了子采样的GBDT有时也称作随机梯度提升树(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采样,程序可以通过采样分发到不同的任务去做boosting的迭代过程,最后形成新树,从而减少弱学习器难以并行学习的弱点。

第三种:弱学习器即CART回归树进行正则化剪枝。

三、从参数空间到函数空间理解GBDT+XGBoost

1、泰勒公式

定义:是一个用函数在某点的信息,描述其附近取值的公式。

基本形式
f ( x ) = f ( x 0 ) 0 ! + f ′ ( x 0 ) 1 ! ( x − x 0 ) + f ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . + f ( n ) ( x 0 ) n ! ( x − x 0 ) n f(x)=\frac{f(x_0)}{0!}+\frac{f&#x27;(x_0)}{1!}(x-x_0)+\frac{f&#x27;&#x27;(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n f(x)=0!f(x0)+1!f(x0)(xx0)+2!f(x0)(xx0)2+...+n!f(n)(x0)(xx0)n
其中一阶泰勒展开式就是求一阶导,二阶展开式即求二阶导。 x 0 x_0 x0为已知,公式表示 f ( x ) f(x) f(x) x 0 x_0 x0 附近的展开。

GDBT 或是 xgb 都是一个参数迭代的过程,因此这里表示一个迭代形式的泰勒函数:假设
x t = x t − 1 + Δ x x^t=x^{t-1}+\Delta x xt=xt1+Δx
f ( x t ) f(x^t) f(xt) x ( t − 1 ) x^{(t-1)} x(t1) 处进行展开:
f ( x t ) = f ( x t − 1 + Δ x ) ≈ f ( x t − 1 ) + f ′ ( x t − 1 ) Δ x + f ′ ′ ( x t − 1 ) Δ x 2 2 f(x^t)=f(x^{t-1}+\Delta x)\approx f(x^{t-1})+f&#x27;(x^{t-1})\Delta x+f&#x27;&#x27;(x^{t-1})\frac{\Delta x^2}{2} f(xt)=f(xt1+Δx)f(xt1)+f(xt1)Δx+f(xt1)2Δx2

2、最优化方法

(1)梯度下降法(Gradient Descend Method)

机器学习中需要最小化损失函数 L ( θ ) L(θ) L(θ),这个 θ θ θ 就是要求解的模型参数。GDM常用于求解无约束最优化问题,是一种迭代方法。初始化 θ θ θ θ 0 θ^0 θ0,不断迭代来更新 θ θ θ 的值,进行损失函数的极小化。

  • 迭代公式: θ t = θ ( t − 1 ) + Δ θ θ^t = θ^{(t-1)}+\Delta{θ} θt=θ(t1)+Δθ
    进行一阶泰勒展开:
    L ( θ t ) = L ( θ t − 1 + Δ θ ) ≈ L ( θ t − 1 ) + L ′ ( θ t − 1 ) Δ θ \begin{aligned} L(\theta^t)&amp;=L(\theta^{t-1}+\color{red}{\Delta{\theta}}\color{black}{)}\\ &amp;\approx L(\theta^{t-1})+L&#x27;(\theta^{t-1})\color{red}{\Delta{\theta}} \end{aligned} L(θt)=L(θt1+Δθ)L(θt1)+L(θt1)Δθ
    要使得 L ( θ t ) &lt; L ( θ ( t − 1 ) ) L(θ^t) &lt; L(θ^{(t-1)}) L(θt)<L(θ(t1)),则可取:
    Δ θ = − α L ′ ( θ t − 1 ) , 则: θ t = θ t − 1 − α L ′ ( θ t − 1 ) \color{red}{\Delta{\theta}}\color{black}{=-\alpha L&#x27;(\theta^{t-1})},\text{则:}\theta^t=\theta^{t-1}-\alpha{L&#x27;(\theta^{t-1})} Δθ=αL(θt1),则:θt=θt1αL(θt1)
  • 其中解释一下为何 Δ θ \Delta\theta Δθ 要取值为上式:首先明确, α \alpha α 的值为正,为了保证 Δ θ \Delta\theta Δθ 恒为负数,则需要乘上 L ′ ( θ t − 1 ) L&#x27;(θ^{t-1}) L(θt1) 先保证其为整数,再加上负号即可。
  • 其实 α \alpha α 就是我们常用的学习速率
  • α \alpha α 如何选取?
    通常我们选取一个很小的值,例如 0.01 − 0.1 0.01-0.1 0.010.1 之间。

(2)牛顿法

牛顿法就是求取二阶泰勒展开:
L ( θ t ) ≈ L ( θ t − 1 ) + L ′ ( θ t − 1 ) Δ θ + L ′ ′ ( θ t − 1 ) Δ θ 2 2 \begin{aligned} L(\theta^t) &amp;\approx L(\theta^{t-1})+L&#x27;(\theta^{t-1})\color{red}{\Delta{\theta}}\color{black}+L&#x27;&#x27;(\theta^{t-1})\frac{\color{red}{\Delta\theta^2}}{2} \end{aligned} 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 \begin{aligned} L(\theta^t) &amp;\approx L(\theta^{t-1})+g\color{red}{\Delta{\theta}}\color{black}+h\frac{\color{red}{\Delta\theta^2}}{2} \end{aligned} L(θt)L(θt1)+gΔθ+h2Δθ2
此时若求取 L ( θ t ) L(θ^t) L(θt) 的极小值,则令 g Δ θ + h Δ θ 2 2 g{\Delta{\theta}}+h\frac{{\Delta\theta^2}}{2} gΔθ+h2Δθ2 极小,求取其一阶导数为 0 0 0 时的 Δ θ \Delta\theta Δθ 即可:
∂ ( g Δ θ + h Δ θ 2 2 ) ∂ Δ θ = 0 Δ θ = − g h \begin{aligned} \frac{\partial\left( g\color{red}{\Delta{\theta}}\color{black}+h\frac{\color{red}{\Delta\theta^2}}{2} \right)}{\partial\color{red}\Delta\theta}\color{black} &amp;= 0 \\ \\ \color{red}\Delta\theta=\color{black}-\frac{g}{h} \end{aligned} Δθ(gΔθ+h2Δθ2)Δθ=hg=0
θ t = θ t − 1 + Δ θ = θ t − 1 − g h \theta^t=\theta^{t-1}+\color{red}{\Delta\theta}\color{black}=\theta^{t-1}-\frac{g}{h} θt=θt1+Δθ=θt1hg
如果参数 θ \theta θ 是向量形式,那么可以向高维空间推广,此时的 h h h H H H(海森矩阵)。

3、从参数空间到函数空间

(1)概述

以上介绍的梯度下降和牛顿法均为参数空间的优化算法
如何从参数空间推广到函数空间呢?

  • 从 Gradient descend 到 Gradient boosting;
  • 从 Newton’s method 到 Newton Boosting

下面介绍GBDT和xgb中使用的函数空间的优化算法,其基本原理还是梯度下降和牛顿法。

两者关系如下:GBDT泛指一切梯度提升树,包括XGB。为了区分二者,可以利用其梯度下降的原理进行区分

  • GBDT在函数空间中利用梯度下降进行优化
  • XGB 在函数空间利用牛顿法进行优化

(2)GBDT:梯度下降从参数空间到函数空间

在这里插入图片描述
其中对于函数空间,仅仅是将参数的拟合换为函数的拟合,每次仍然迭代的是一个负梯度,只是其最终得到的是增量函数的累加而不是增量参数累加。
GBDT里,迭代项 f t ( x ) f_t(x) ft(x) 就是我们的决策树,最终将每棵决策树的预测值(函数)加起来。

(3)XGBoost:牛顿法从参数空间到函数空间

对于牛顿法的函数空间优化,其方法类似于梯度下降的函数空间优化。

牛顿法不仅使用目标函数的一阶偏导数,还进一步利用了目标函数的二阶偏导,这样就考虑了梯度变化的趋势,因而能更全面地确定合适的搜索方向以加快收敛。

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值