- Bagging和Boosting两大集成算法。相比与Bagging中各个弱分类器可以独立地进行训练,Boosting中的弱分类器需要一次生成。在每一轮迭代中,基于已生成的弱分类器集合(即当前模型)的预测结果,新的弱分类器会重点关注那些还没有被正确预测的样本。
- Gradient Boosting是Boosting中的一大类算法,其基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。在每一轮迭代中,首先计算出当前模型在所有样本上的负梯度,然后以该值为目标训练一个新的弱分类器进行拟合并计算出该分类器的权重,最终实现对模型的更新。
梯度提升和梯度下降的区别和联系
通过梯度提升和梯度下降算法的对比情况。可以发现,两者都是在每一轮迭代中利用损失函数相对与模型的负梯度方向的信息来对 当前模型进行更新,只不过在梯度下降中,模型是以参数化的形式表示。从而模型的更新等价与参数的更新,而在梯度提升中,模型并不需要 进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类。
GBDT的优点和局限性有哪些¶
优点¶
局限性¶
- 预测阶段的计算速度快,树与树之间可以并行化计算。
- 在分布稠密的数据集上,泛化能力和表达能力都很好,这使得GBDT在Kaggle的众多竞赛中,经常名列前茅。
- 采用决策树作为弱分类器使得GBDT模型有着较好的可解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理如归一化等。
- GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络。
- GBDT在处理文本分类特征问题上,相对于其他模型的优势不如它在处理数值特征时明显。
- 训练过程需要串行化,只能在决策树内部采取一些局部并行的手段提高训练速度。