机器学习进阶之(四)XGBoost-LightGBM
1. 回顾XGboost
XGBoost在竞赛与工业界都使用频繁。XGBoost是决策树的一种,那么要使用决策树过程,下面有两个弱分类器,一个以年龄性别,另一个以是否使用电脑,这是一种集成的思想,我们利用叶子节点与权值来表示预测值。
1.1 Boosting思想
Boosting是一个加法模型,从常数开始迭代,每一轮迭代增加一个函数,每次新添加的函数是基于以往所有的学习结果的和
与真实值
之间的残差上学习模型。
y ⃗ i ( 0 ) = 0 \vec y_i^{(0)} = 0 yi(0)=0 y ⃗ i ( 1 ) = f 1 ( x i ) = y ⃗ i ( 0 ) + f 1 ( x i ) \vec y_i^{(1)}=f_1(x_i)=\vec y_i^{(0)} + f_1(x_i) yi(1)=f1(xi)=yi(0)+f1(xi) y ⃗ i ( 2 ) = f 1 ( x i ) + f 2 ( x i ) = y ⃗ i ( 1 ) + f 2 ( x i ) \vec y_i^{(2)}=f_1(x_i)+f_2(x_i)=\vec y_i^{(1)}+f_2(x_i) yi(2)=f1(xi)+f2(xi)=yi(1)+f2(xi) . . . ... ... y ⃗ i ( t ) = ∑ k = 1 t f k ( x i ) = y ⃗ i ( t − 1 ) + f t ( x i ) \vec y_i^{(t)}=\sum_{k=1}^t f_k(x_i)=\vec y_i^{(t-1)}+f_t(x_i) yi(t)=k=1∑tfk(xi)=yi(t−1)+ft(xi)
1.2 XGBoost损失函数
XGBoost需要对每棵树都进行综合考虑,优化目标是一个损失函数。
我们的目标函数是: l ( y i , y ‾ i ) = ( y i − y ‾ i ) 2 l(y_i, \overline y_i)=(y_i - \overline y_i)^2 l(yi,yi)=(yi−yi)2,那么我们如何求 最优函数呢? F ∗ ( x ⃗ ) = a r g m i n E ( x , y ) [ L ( y , F ( x ⃗ ) ) ] F^*(\vec x)=argminE_{(x,y)}[L(y,F(\vec x))] F∗(x)=argminE(x,y)[L(y,F(x))]集成算法表示: y ⃗ i = ∑ k = 1 K f k ( x i ) , f ∈ F \vec y_i =\sum_{k=1} ^ K f_k(x_i), f \in F yi=∑k=1