介绍了大体的四个区别,并不详细,仅做参考。
1.传统GBDT以CART树作为基分类器,xgboost还支持线性分类器,可以为带L1和L2正则项的线性回归和逻辑回归。
2.GBDT优化时只用到了一阶导数信息,xgboost对损失函数进行二阶泰勒展开,用到了一阶和二阶导数。
3.xgboost在损失函数中加入正则项,控制模型的复杂度,防止过拟合。正则项中包含了树的叶子节点数和参数的L2范数。
4.xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。