GBDT常见面试问题

2020-06-30  本文已影响0人  百川资源库

 1. 解释一下GBDT算法的过程

GBDT(Gradient Boosting Decision Tree),全名叫梯度提升决策树,使用的是**Boosting**的思想。

1.1 Boosting思想

Boosting方法训练基分类器时采用串行的方式,各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。

1.2 GBDT原来是这么回事

GBDT的原理很简单,就是所有弱分类器的结果相加等于预测值,然后下一个弱分类器去拟合误差函数对预测值的残差(这个残差就是预测值与真实值之间的误差)。当然了,它里面的弱分类器的表现形式就是各棵树。

举一个非常简单的例子,比如我今年30岁了,但计算机或者模型GBDT并不知道我今年多少岁,那GBDT咋办呢?

- 它会在第一个弱分类器(或第一棵树中)随便用一个年龄比如20岁来拟合,然后发现误差有10岁;

- 接下来在第二棵树中,用6岁去拟合剩下的损失,发现差距还有4岁;

- 接着在第三棵树中用3岁拟合剩下的差距,发现差距只有1岁了;

- 最后在第四课树中用1岁拟合剩下的残差,完美。

- 最终,四棵树的结论加起来,就是真实年龄30岁(实际工程中,gbdt是计算负梯度,用负梯度近似残差)。

2. 梯度提升和梯度下降的区别和联系是什么?

下表是梯度提升算法和梯度下降算法的对比情况。可以发现,两者都是在每一轮迭代中,利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新,只不过在梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新。而在梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类。

3. **GBDT**的优点和局限性有哪些?

3.1 优点

1. 预测阶段的计算速度快,树与树之间可并行化计算。

2. 在分布稠密的数据集上,泛化能力和表达能力都很好,这使得GBDT在Kaggle的众多竞赛中,经常名列榜首。

3. 采用决策树作为弱分类器使得GBDT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系。

3.2 局限性

1. GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络。

2. GBDT在处理文本分类特征问题上,相对其他模型的优势不如它在处理数值特征时明显。

3. 训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度。

4. RF(随机森林)与GBDT之间的区别与联系

相同点:

- 都是由多棵树组成,最终的结果都是由多棵树一起决定。

- RF和GBDT在使用CART树时,可以是分类树或者回归树。

不同点:

- 组成随机森林的树可以并行生成,而GBDT是串行生成

- 随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和

- 随机森林对异常值不敏感,而GBDT对异常值比较敏感

- 随机森林是减少模型的方差,而GBDT是减少模型的偏差

- 随机森林不需要进行特征归一化。而GBDT则需要进行特征归一化

上一篇下一篇

猜你喜欢

热点阅读