问题

XGBoost和GBDT是什么?有什么区别?

A: GBDT:关键点在于Gradient和Boosting和DT(回归树)。在BDT中:Boosting——阶梯状训练,每棵树学习的是之前的树学习结果的残差。通过多棵树的预测结果求和,作为最终预测结果。而在GBDT中,采用损失函数梯度作为每棵树需要学习的预测结果(y)。
为什么使用损失函数的梯度?——基于残差的模型无法处理分类模型(类别数据无法取残差);基于损失函数梯度的模型,由于梯度是优化方向,那么就具备和残差同样的性质(使模型输出结果向着正确方向靠近),且损失函数类型多,可以根据模型业务选择合适的损失函数。实际上,BDT是GBDT的特例。
GBDT容易过拟合,故在推荐中采用GBDT+LR的模型,使GBDT的输出结果作为LR的特征输入。
关于回归树:叶子节点输出值常见采用的是当前叶子节点划分领域的值的均值,划分方式同分类树一样,根据特征划分计算当前指标(决策树的划分指标),选择最佳的特征作为当前划分。在推荐的GBDT+LR模型中,训练的是回归树,输出的是表示每棵回归树落到的节点的特征向量([1,0,0,…,0,1,0,0])。
GBDT是一种机器学习算法,而XGBoost是GBDT最广为人知的工程实现。XGB相对于GBDT,对实现方式更为详尽,能够得到更准确的结果。在实现方式上,相对于GBDT在损失函数构造上添加了二阶泰勒展开和正则项,并根据最小化损失函数构造了决策树的划分标准。
XGB相对于GBDT有以下优化:加入正则项(与叶子节点个数与节点输出权值有关)防止过拟合;采用二阶泰勒展开,相对于GBDT的一阶导数(梯度)更为准确;支持多种基分类器,不限于GBDT的CART决策树;XGB有缺失值处理方案,能够自动学习缺失值处理策略;Shrinkage(衰减)策略,每次迭代的新模型乘以一个衰减率降低优化速度,避免过拟合;借鉴了随机森林(RF)的两种抽样策略;并行处理。

视频讲解

过程

调参

特征重要性

从官方提供的文档来看,有以下几个衡量方法:
image.png