XGBoost

XGBoost

假设一共有 m m m个基模型,分别为 f 1 ( x ) , f 2 ( x ) , … , f m ( x ) f_1(x),f_2(x),\dots,f_m(x) f1(x),f2(x),,fm(x) n n n个样本, x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,,xn,则XGBoost模型的损失函数、正则项和目标函数分别为:
L = ∑ i = 1 n ℓ ( y i , y ^ i ( m ) ) ,    R = ∑ i = 1 m Ω ( f i ) O b j = L + R = ∑ i = 1 n ℓ ( y i , y ^ i ( m ) ) + ∑ i = 1 m Ω ( f i ) \begin{gather*} L=\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(m)}),\;R=\sum_{i=1}^{m}\Omega(f_i) \\ Obj=L+R=\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(m)})+\sum_{i=1}^{m}\Omega(f_i) \end{gather*} L=i=1n(yi,y^i(m)),R=i=1mΩ(fi)Obj=L+R=i=1n(yi,y^i(m))+i=1mΩ(fi)
t t t步的目标函数为:
O b j = ∑ i = 1 n ℓ ( y i , y ^ i ( t ) ) + ∑ i = 1 t Ω ( f i ) = ∑ i = 1 n ℓ ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) + ∑ i = 1 t − 1 Ω ( f i ) + Ω ( f t ) = ∑ i = 1 n ℓ ( y i , y ^ i ( t − 1 ) + f t ( x i ) ) + Ω ( f t ) + C \begin{align*} Obj &=\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(t)})+\sum_{i=1}^{t}\Omega(f_i) \\ &=\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(t-1)}+f_t(x_i))+\sum_{i=1}^{t-1}\Omega(f_i)+\Omega(f_t) \\ &=\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(t-1)}+f_t(x_i))+\Omega(f_t)+C \end{align*} Obj=i=1n(yi,y^i(t))+i=1tΩ(fi)=i=1n(yi,y^i(t1)+ft(xi))+i=1t1Ω(fi)+Ω(ft)=i=1n(yi,y^i(t1)+ft(xi))+Ω(ft)+C
因为 C C C是一个常数,所以可以直接扔掉。我们的目标是最优化目标函数,方式是通过引入新的一个基模型 f t ( x ) f_t(x) ft(x),所以要研究 f t ( x ) f_t(x) ft(x)对于每一个样本具体取怎样的值能够使目标函数值降低,换句话说就是, f t ( x i ) f_t(x_i) ft(xi)该在损失函数 l l l的第二个分量上往前或往后走多少?由此我们想到Taylor展开,Taylor展开其实就是表示自变量变化一定值后函数值的变化。将目标函数进行二阶展开来近似可以得到:
Obj ⁡ ≈ ∑ i = 1 n [ ℓ ( y i , y ^ i ( t − 1 ) ) + g i f t ( x i ) + 1 2 h i f t 2 ( x i ) ] + Ω ( f t ) = ∑ i = 1 n [ 1 2 h i f t 2 ( x i ) + g i f t ( x i ) ] + Ω ( f t ) + ∑ i = 1 n ℓ ( y i , y ^ i ( t − 1 ) ) \begin{align*} \operatorname{Obj} &\approx\sum_{i=1}^{n}\left[\ell(y_i,\hat{y}_i^{(t-1)})+g_if_t(x_i)+\frac{1}{2}h_if_t^2(x_i)\right]+\Omega(f_t) \\ &=\sum_{i=1}^{n}\left[\frac{1}{2}h_if_t^2(x_i)+g_if_t(x_i)\right]+\Omega(f_t)+\sum_{i=1}^{n}\ell(y_i,\hat{y}_i^{(t-1)}) \end{align*} Obji=1n[(yi,y^i(t1))+gift(xi)+21hift2(xi)]+Ω(ft)=i=1n[21hift2(xi)+gift(xi)]+Ω(ft)+i=1n(yi,y^i(t1))
其中:
g i = ∂ ℓ ( y i , z ) ∂ z ∣ z = y ^ i ( t − 1 ) , h i = ∂ 2 ℓ ( y i , z ) ∂ z 2 ∣ z = y ^ i ( t − 1 ) \begin{equation*} g_i=\frac{\partial \ell(y_i,z)}{\partial z}\Big|_{z=\hat{y}_i^{(t-1)}},\quad h_i=\frac{\partial^2 \ell(y_i,z)}{\partial z^2}\Bigl|_{z=\hat{y}_i^{(t-1)}} \end{equation*} gi=z(yi,z) z=y^i(t1),hi=z22(yi,z) z=y^i(t1)
考虑到此时已经拟合成功了 t − 1 t-1 t1个基模型,上式最后一项是一个常数,所以也可以扔掉,于是我们的目标函数变为了:
Obj ⁡ = ∑ i = 1 n [ 1 2 h i f t 2 ( x i ) + g i f t ( x i ) ] + Ω ( f t ) \begin{equation*} \operatorname{Obj}=\sum_{i=1}^{n}\left[\frac{1}{2}h_if_t^2(x_i)+g_if_t(x_i)\right]+\Omega(f_t) \end{equation*} Obj=i=1n[21hift2(xi)+gift(xi)]+Ω(ft)

抽象到具体

上面我们进行的讨论都带着 f t f_t ft f t f_t ft是一个抽象的模型,接下来要选择一个具体的基模型去讨论,也就是说,我们得选择一个具体的基模型去训练,用这个目标函数去指导基模型的最优化问题。在原始论文中陈天奇选择了回归决策树模型,接下来我们也使用该模型去进行介绍。
陈天奇在回归决策树模型中使用了如下的正则项:
Ω ( f ) = γ T + λ ∑ i = 1 T ω i 2 \begin{equation*} \Omega(f)=\gamma T+\lambda\sum_{i=1}^{T}\omega_i^2 \end{equation*} Ω(f)=γT+λi=1Tωi2
其中 γ , λ \gamma,\lambda γ,λ是控制惩罚强度的超参数, T T T是模型叶节点的数量, ω i \omega_i ωi是这棵树第 i i i个叶节点的输出值。记 q ( x ) q(x) q(x)为一个函数,它将样本 x x x映射到 x x x属于的叶节点的编号,也就是说 q ( x i ) = j q(x_i)=j q(xi)=j表示 x i x_i xi这个样本最后被划分到了树的第 j j j个叶节点,该样本的训练输出值为 ω j \omega_j ωj。记 I j = { i : q ( x i ) = j } I_j=\{i:q(x_i)=j\} Ij={i:q(xi)=j},于是上述的抽象目标函数在回归决策树下的具体目标函数为:
Obj ⁡ = ∑ i = 1 n [ 1 2 h i f t 2 ( x i ) + g i f t ( x i ) ] + Ω ( f t ) = ∑ i = 1 n [ 1 2 h i w q ( x i ) 2 + g i w q ( x i ) ] + γ T + λ ∑ i = 1 T ω i 2 = ∑ j = 1 T [ 1 2 ( ∑ i ∈ I j h i + λ ) w j 2 + ( ∑ i ∈ I j g i ) ω j ] + γ T \begin{align*} \operatorname{Obj} &=\sum_{i=1}^{n}\left[\frac{1}{2}h_if_t^2(x_i)+g_if_t(x_i)\right]+\Omega(f_t) \\ &=\sum_{i=1}^{n}\left[\frac{1}{2}h_iw_{q(x_i)}^2+g_iw_{q(x_i)}\right]+\gamma T+\lambda\sum_{i=1}^{T}\omega_i^2 \\ &=\sum_{j=1}^{T}\left[\frac{1}{2}\left(\sum_{i\in I_j}h_i+\lambda\right)w_j^2+\left(\sum_{i\in I_j}g_i\right)\omega_j\right]+\gamma T \end{align*} Obj=i=1n[21hift2(xi)+gift(xi)]+Ω(ft)=i=1n[21hiwq(xi)2+giwq(xi)]+γT+λi=1Tωi2=j=1T 21 iIjhi+λ wj2+ iIjgi ωj +γT

XGBoost_第1张图片

你可能感兴趣的:(机器学习,笔记,机器学习,算法)