XGBoost面试题详解

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还采用了带权重的特征发现算法,和分裂点采样算法进行了改进。

参考

  • 终于有人把XGBoost 和 LightGBM 讲明白了,项目中最主流的集成算法!
  • 珍藏版 | 20道XGBoost面试题

你可能感兴趣的:(XGBoost面试题详解)