0%

XGBoost二阶泰勒展开式推导

目标函数: obj=i=1nl(yi,y^i(t))+i=1tΩ(fi)\mathrm{obj}=\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}^{(t)}\right)+\sum_{i=1}^{t} \Omega\left(f_{i}\right)
其中yiy_i是真实值,y^i(t)\hat{y}_{i}^{(t)}是总t棵树的预测值,ll是loss function,Ω\Omega是正则项,防止过拟合。ff是一棵CART树,ft(xi)f_{t}\left(x_{i}\right)是输入数据xix_i后第t棵树的输出值。
y^i(t)\hat{y}_{i}^{(t)}ft(xi)f_{t}\left(x_{i}\right)的关系为:
y^i(t)=k=1tfk(xi)=y^i(t1)+ft(xi)\hat{y}_{i}^{(t)}=\sum_{k=1}^{t} f_{k}\left(x_{i}\right)=\hat{y}_{i}^{(t-1)}+f_{t}\left(x_{i}\right)
因此,目标函数即可转为:
obj(t)=i=1nl(yi,y^i(t))+i=1tΩ(fi)=i=1nl(yi,y^i(t1)+ft(xi))+Ω(ft)+constant \begin{aligned} \mathrm{obj}^{(t)} &=\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}^{(t)}\right)+\sum_{i=1}^{t} \Omega\left(f_{i}\right) \\ &=\sum_{i=1}^{n} l\left(y_{i}, \hat{y}_{i}^{(t-1)}+f_{t}\left(x_{i}\right)\right)+\Omega\left(f_{t}\right)+\text {constant } \end{aligned}

泰勒展开公式: f(x+Δx)f(x)+f(x)Δx+12f(x)Δx2f(x+\Delta x) \simeq f(x)+f^{\prime}(x) \Delta x+\frac{1}{2} f^{\prime \prime}(x) \Delta x^{2}
将损失函数泰勒展开至二阶:
obj(t)=i=1n[l(yi,y^i(t1))+gift(xi)+12hift2(xi)]+Ω(ft)+constant\mathrm{obj}^{(t)}=\sum_{i=1}^{n}\left[l\left(y_{i}, \hat{y}_{i}^{(t-1)}\right)+g_{i} f_{t}\left(x_{i}\right)+\frac{1}{2} h_{i} f_{t}^{2}\left(x_{i}\right)\right]+\Omega\left(f_{t}\right)+constant
其中gi=y^(t1)l(yi,y^(t1))g_{i}=\partial_{\hat{y}^{(t-1)}} l\left(y_{i}, \hat{y}^{(t-1)}\right)hi=y^(t1)2l(yi,y^(t1))h_{i}=\partial_{\hat{y}^{(t-1)}}^{2} l\left(y_{i}, \hat{y}^{(t-1)}\right)
分别表示对y^i(t1)\hat{y}_{i}^{(t-1)}求一次与二次偏导。
与泰勒展开式对应来看,其中x为y^i(t1)\hat{y}_{i}^{(t-1)}Δx\Delta xft(xi)f_{t}\left(x_{i}\right)

-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道