FAQ
-
1. XGBoost如何进行并行计算?
XGBoost是基于Boosting思想,其并行计算不是在Tree层面,而是基于特征层面采用了CSC的格式,进行并行化处理
-
2.XGBoost对于缺失值如何处理?
对于缺失值,XGBoost会进行左右分支方向的最大化学习判断,原理是对于该特征的所有非缺失值,进行从大到小排序,并按照特征分类方法学习,默认缺失值归于左分支或右分支,从中迭代所有分割点组合,得到最大sorce及其分割点。
-
3. XGBoost怎样避免过拟合?
- shrinkage 对于每次学习到的树权重,乘以系数来降低权重,为后面树的学习留下足够的空间,想法是每次走一小步逐渐逼近结果的效果,要比每次迈一大步很快的逼近结果的方式更容易避免过拟合
- 列采样 类似于RF,只是用部分特征
- 行采样 只使用部分数据
- 带正则化的目标函数 对于叶子结点的数目和叶子结点的权重大小,都进行了正则化约束。
-
4.XGBoost和GBDT的相同和区别?
联系
- 1 GBDT和XGBoost都是基于boosting的思想,基于前向加法模型
区别
- 1 GBDT使用了一阶泰勒展开,XGBoost使用了二阶泰勒展开,拟合结果更加精准。
- 2 GBDT目标函数是经验风险最小化,XGBoost相比之下加入了正则化项,限制了树的叶子节点个数和权重大小。
- 3 XGBoost采用了shrinkage、列采样行采样、和正则化的损失函数来避免过拟合,GBDT并没有采用这些方法。
- 4 对于缺失值,XGBoost采用了分支发现算法,进行很好的拟合。
- 5 特征发现方面,除了GBDT采用的准确特征分类算法,XGBoost还采用了带权重的特征发现算法,和分裂点采样算法进行了改进。