xgboost是华盛顿大学博士陈天奇创造的一个梯度提升(Gradient Boosting)的开源框架。至今可以算是各种数据比赛中的大杀器,被大家广泛地运用。接下来,就简单介绍一下xgboost和普通的GBDT相比,有什么不同。(何为Gradient Boosting, GBDT请看我上篇文章)
1. 梯度下降
在GBDT中,我们每次生成下一个弱学习器,都是把损失函数的梯度作为学习目标,相当于利用梯度下降法进行优化来逼近损失函数的最小值,也就是使得损失函数为0,最终学习器尽可能接近真实结果。
![equation?tex=F_n%28x%29%3D%5Csum_%7Bi%3D1%7D%5En+f_i%28x%29](https://i-blog.csdnimg.cn/blog_migrate/f61e1991628a483fcc0c034f636a6911.png)
![equation?tex=F_n%28x%29+%3D+F_%7Bn-1%7D%28x%29+%2Bf_n%28x%29+%3D+F_%7Bn-1%7D%28x%29+-+%5Cnabla+L%28F_%7Bn-1%7D%28x%29%29](https://i-blog.csdnimg.cn/blog_migrate/f50dfc6e10a516defae7ec325cefe54e.png)
而xgboost中,我们则是把损失函数的二阶泰勒展开的差值作为学习目标,相当于利用牛顿法进行优化,来逼近损失函数的最小值,也就是使得损失函数为0。
![equation?tex=F_n%28x%29%3D%5Csum_%7Bi%3D1%7D%5En+f_i%28x%29](https://i-blog.csdnimg.cn/blog_migrate/f61e1991628a483fcc0c034f636a6911.png)