一、xgboost的原理
首先值得说明的是,xgboost是gbdt的升级版,有兴趣的话可以先看看gbdt的推导。xgboost同样是构造一棵棵树来拟合残差;
不同之处在于
(1)gbdt使用一阶导,xgboost使用二阶导。
(2)xgboost在loss中包括模型复杂度,gbdt没有。
二、xgboost的推导
首先我们来定义一下模型:
1.符号定义:
2.模型定义
假设我们迭代T轮,意味着我们要生成T棵残差树:
值得注意的几点:
1.其实一般来说,前面还要加上一个,但是作者在这里初始化的时候将设置为0,所以不用加了。
2. f t f_t ft( x i x_i xi)表示的是第t棵残差树对