XGBoost
xgboost也是使用提升树相同的前向分步算法。其区别在于:xgboost通过结构风险极小化来确定下一个决策参数 Θ m {\Theta}_{m} Θm
Θ ^ m = arg min Θ m ∑ i = 1 N L ( y ~ i , f m ( x → i ) ) + Ω ( h m ( x → ) ) \hat{\Theta}_{m}=\arg \min _{\Theta_{m}} \sum_{i=1}^{N} L\left(\tilde{y}_{i}, f_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right) Θ^m=argΘmmini=1∑NL(y~i,fm(xi))+Ω(hm(x))
其中 Ω ( h m ) \Omega(h_{m}) Ω(hm)为第m个决策树的正则化项。这是xgboost和GBT的一个重要区别。
L = ∑ i = 1 N L ( y ~ i , f m ( x → i ) ) + Ω ( h m ( x → ) ) \mathcal{L}=\sum_{i=1}^{N} L\left(\tilde{y}_{i}, f_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right) L=∑i=1NL(y~i,fm(xi))+Ω(hm(x))为目标函数
泰勒展开式
定义:
y ^ i < m − 1 > = f m − 1 ( x → i ) , g i = ∂ L ( y ~ i , y ^ i < m − 1 > ) ∂ y ^ i < m − 1 > , h i = ∂ 2 L ( y ~ i , y ^ i < m − 1 > ) ∂ 2 y ^ i < m − 1 > \hat{y}_{i}^{<m-1>}=f_{m-1}\left(\overrightarrow{\mathbf{x}}_{i}\right), \quad g_{i}=\frac{\partial L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}\right)}{\partial \hat{y}_{i}^{<m-1>}}, \quad h_{i}=\frac{\partial^{2} L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}\right)}{\partial^{2} \hat{y}_{i}^{<m-1>}} y^i<m−1>=fm−1(xi),gi=∂y^i<m−1>∂L(y~i,y^i<m−1>),hi=∂2y^i<m−1>∂2L(y~