(0)实际上GBDT泛指所有梯度提升树算法包括XGBoost,为了区分,通常GBDT特指只用了一阶导数信息的算法。
(1)传统GBDT仅以CART回归树作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。
(2)传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。xgboost工具支持自定义代价函数,要求函数可一阶和二阶求导。
(3)xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从 Bias-variance tradeoff 角度来讲,正则项降低了模型的方差,使学习出来的模型更加简单,防止过拟合。
(4)Shrinkage(缩减),即学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。
(5)列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。 对缺失值的处理。对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向。
(6)xgboost工具支持并行。注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是

最低0.47元/天 解锁文章
441

被折叠的 条评论
为什么被折叠?



