GBDT-Xgboost-LightGBM的区别
GBDT-Xgboost的区别:
1、分类器的区别
传统GBDT以Cart树作为分类器;
Xgboost还支持线性分类器,这个时候Xgboost相当于带有L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)
2、优化
传统GBDT在优化时只用到一阶导数信息 ;
Xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。还有Xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导
3、Shrinkage(缩减)
Shrinkage(缩减),相当于学习速率(Xgboost中的eta)。Xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。(传统GBDT的实现也有学习速率)
4、特征抽样
特征抽样(column subsampling)。Xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是Xgboost异于传统gbdt的一个特性。
5、缺失值问题
对缺失值的处理,对于特征的值有缺失的样本,Xgboost可以自动学习出它的分裂方向。