XGBoost全称 “Extreme Gradient Boosting“,被称为极端梯度提升法。它利用一连串的决策树,通过学习前一个决策树残差的方式,来不断逼近最终的预测结果,这里着重讲目标函数是如何构建的以及如何生成一棵新的树。
假设我们已经训练了KKK棵树,那么其对于第iii个样本的预测结果为:
y^i=∑k=1Kfk(xi)\hat y_i=\sum\limits_{k=1}^Kf_k(x_i)y^i=k=1∑Kfk(xi)
- 如果是回归问题,那么其最终的预测值就是y^\hat yy^
- 如果是分类问题,那么最终的结果y^\hat yy^就是其预测值为对应分类的概率(0<y^<10<\hat y<10<y^<1)
假设我们一共有nnn条样本数据,我们可以构建一个统一的目标函数:
Obj=∑i=1nl(yi,y^i)+∑k=1KΩ(fk)Obj=\sum\limits_{i=1}^nl(y_i,\hat y_i)+\sum\limits_{k=1}^KΩ(f_k)Obj=i=1∑nl(yi,y^i)+k=1∑KΩ(fk)
- 其中yiy_iyi是第iii个样本的真实值,如果是分类问题那就是1
- l(yi,y^i)l(y_i,\hat y_i)l(yi,y^i)是损失函数,对于回归问题我们可以使用MSE,对于分类问题可以使用Cross entropy
- Ω(fk)Ω(f_k)Ω(fk)是对于每棵树的具体约束,防止单棵树过拟合,下面会具体讲
同样对于样本iii我们可以得到:
yi(0)=0(defaultvalue)yi(1)=f1(xi)=yi(0)+f1(xi)yi(2)=f1(xi)+f2(xi)=yi(1)+f2(xi)...yi(k)=f1(xi)+f2(xi)+...+fk−1(xi)+fk(xi)=yi(k−1)+fk(xi)\begin{aligned}y_i^{(0)}&=0\quad(default\quad value)\\y_i^{(1)}=f_1(x_i)&=y_i^{(0)}+f_1(x_i)\\y_i^{(2)}=f_1(x_i)+f_2(x_i)&=y_i^{(1)}+f_2(x_i)\\&.\\&.\\&.\\y_i^{(k)}=f_1(x_i)+f_2(x_i)+...+f_{k-1}(x_i)+f_k(x_i)&=y_{i}^{(k-1)}+f_k(x_i)\end{aligned}yi(0)yi(1)=f1(xi)yi(2)=f1(xi)+f2(xi)yi(k)=f1(xi)+f2(xi)+...+fk−1(xi)+fk(xi)=0(defaultvalue)=yi(0)

本文详细介绍了XGBoost中的目标函数构建过程,从回归和分类问题的预测值计算,到目标函数的构建和泰勒展开,以及决策树的优化约束。重点阐述了如何通过泰勒展开和二次函数最小化确定决策树的分裂方式。
最低0.47元/天 解锁文章
1887

被折叠的 条评论
为什么被折叠?



