1.简述XGBoost。
XGBoost是boosting模型,是大规模、分布式的通用GBDT库,也是串行训练多个基分类器,每一个分类器拟合前一个分类器的残差。
2.XGBoost和GBDT有什么不同?
XGBoost是GBDT的工程实现,GBDT是算法
在使用CART作为基础分类器时,xgboost显式的加入了正则项来控制模型复杂度,有利于防止过拟合,从而提高模型的泛化能力
目标函数不同,xgboost的目标函数可以用泰勒展开式表示,加入了正则化项和常数项(XGBoost对代价函数进行二阶泰勒展开,可以同时使用一二阶导数,GBDT在模型训练时只使用了一阶导数)
基分类器不同,xgboost的基分类器不仅仅可以是树,还支持多种类型的基础分类器,比如线性分类器,GBDT的基分类器是CART树
训练数据不同,xgboost的训练数据可以按列采样,gdbt要用全部的数据
XGBoost可以自动学出缺失值的处理策略,而GBDT没有涉及对缺失值的处理
XGBoost支持并行计算,XGBoost的并行是基于特征计算的并行,将特征列排序后以block形式存储在内存中,在后面的迭代中重复使用这个结构
3.XGBoost为什么可以并行训练?
XGBoost的并行训练是在特征粒度上,XGBoost的并行是基于特征计算的并行,将特征列排序后以block形式存储在内存中,在后面的迭代中重复使用这个结构
4.XGBoost防止过拟合的方法?
调整正则化项;加入early stopping;减小学习率

5.XGboost为什么这么快?

1652

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



