机器学习(八)—GBDT 与 XGBOOST
RF、GBDT和XGBoost都属于集成学习(Ensemble Learning),集成学习的 目的 是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性。 根据个体学习器的生成方式,目前的集成学习方法大致分为两大类:即个体学习器之间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表就是Boosting,后者的代表是Bagging和“随机森林”(Random Forest)。 1、 GBDT和XGBoost区别 XGBOOST相比于GBDT有何不同?XGBOOST为什么快?XGBOOST如何支持并行? 传统的GBDT以CART树作为基学习器,XGBoost还支持线性分类器,这个时候XGBoost相当于L1和L2正则化的逻辑斯蒂回归(分类)或者线性回归(回归); 传统的GBDT在残差梯度方向拟合只用到一阶导数信息,XGBoost则对代价函数进行了二阶泰勒展开,得到 一阶和二阶导数 ,xgboost工具支持 自定义代价函数 ,只要函数可一阶和二阶求导; XGBoost在代价函数中 加入了正则项 ,用于控制模型的复杂度。从权衡方差偏差来看,它 降低了模型的方差 ,使学习出来的模型更加简单,放置过拟合,这也是XGBoost优于传统GBDT的一个特性;正则项里包含了树的叶子节点个数