WHAT
1、boosting的思想?
2、xgboost与传统GBDT的区别,优点?
3、为什么用
链接: 一文搞定 GBDT、Xgboost 和 LightGBM 的面试.
1.boosting
类似于bagging集成学习,boosting也是通过重采样得到多个弱分类器,最后得到一个强分类器。区别是boosting是基于权值的弱分类器集成。
如上图为boosting的流程图,主要为两个部分,
更新采样权值D和计算分类器权重α,
~前者使得原来分错的样本再下一个分类器中能够有较大的几率出现,从而提高原来分错样本之后分对的概率;
~后者根据分类器的表现,赋予不同弱分类器不同权值,最后得到一个加权的强分类器。
~Boosting 思想的GBDT、XGBoost 可以用于分类也可以用于回归。可以筛选特征。
~Boosting 思想的 AdaBoost ,它是通过前一轮决策的结果来给样本设置权重,决策正确的权重减小,决策错误的权重增加;然后将加权后的数据集输入下一个弱学习器训练,直到达到训练停止条件。
2、xgboost与传统GBDT的区别,优点
xgboost是boosting Tree的一个很牛的实现,它 有以下几个优良的特性:
1、显示的把树模型复杂度作为正则项加到优化目标中。
2、公式推导中用到了二阶导数,用了二阶泰勒展开。
3、实现了分裂点寻找近似算法。
4、利用了特征的稀疏性。
5、数据事先排序并且以block形式存储,有利于并行计算。
6、实现做了面向体系结构的优化,针对cache和内存做了性能优化。
GBDT介绍
(Gradient Boosting Decision Tree:梯度提升决策树)
利用弱分类器(决策树)迭代训练以得到最优模型
具有训练效果好、不易过拟合等优点。
gbdt 的算法的流程?
gbdt 如何选择特征 ?
gbdt 如何构建特征 ?
gbdt 如何用于分类?
gbdt 通过什么方式减少误差 ?
gbdt的效果相比于传统的LR,SVM效果为什么好一些 ?
gbdt 如何加速训练?
gbdt的参数有哪些,如何调参 ?
gbdt 实战当中遇到的一些问题 ?
gbdt的优缺点 ?
WHY
HOW
// An highlighted block
var foo = 'bar';