1. xgboost在目标函数中加入了正则化项,当正则化项为0时与传统的GDBT的目标函数相同
2. xgboost在迭代优化的时候使用了目标函数的泰勒展开的二阶近似,paper中说能加快优化的过程!!xgboost可自定义目标函数,但是目标函数必须二阶可导也是因为这个。GDBT中只用了一阶导数。
3. xgboost寻找最佳分割点时,考虑到传统贪心法效率比较低,实现了一种近似贪心法,除此之外还考虑了稀疏数据集、缺失值的处理,这能大大提升算法的效率。paper中提到在一个稀疏数据集中测试,发现速度提升了50倍。
4.对每颗子树增加一个参数,使得每颗子树的权重降低,防止过拟合,增加这个参数叫shrinkage方法。对特征进行降采样,灵感来源于随机森林,除了能降低计算量外,还能防止过拟合。