xgboost是华盛顿大学博士陈天奇创造的一个梯度提升(Gradient Boosting)的开源框架。至今可以算是各种数据比赛中的大杀器,被大家广泛地运用。接下来,就简单介绍一下xgboost和普通的GBDT相比,有什么不同。(何为Gradient Boosting, GBDT请看我上篇文章)
1. 梯度下降
在GBDT中,我们每次生成下一个弱学习器,都是把损失函数的梯度作为学习目标,相当于利用梯度下降法进行优化来逼近损失函数的最小值,也就是使得损失函数为0,最终学习器尽可能接近真实结果。
而xgboost中,我们则是把损失函数的二阶泰勒展开的差值作为学习目标,相当于利用牛顿法进行优化,来逼近损失函数的最小值,也就是使得损失函数为0。
那为什么可以这么逼近呢?这就涉及到泰勒展开:
梯度下降法就是用一阶泰勒展开来近似函数: