(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)列抽样