前言
如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。
第十二章 集成学习
5、梯度提升决策树的基本原理
- 梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是Boosting算法中非常流行的模型。Gradient Boosting是Boosting中的一大类算法,基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。采用决策树为弱分类器的Gradient Boosting算法被称为GBDT,有时也称MART(Multiple Additive Regression Tree)。GBDT中使用的决策树通常为CART树。
- 梯度提升和梯度下降的区别和联系:
- 联系:两者均是在每一轮迭代中,利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新。
- 区别:在梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新;在梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类。
提升算法 | 目标 | 迭代公式 | 损失 |
---|---|---|---|
梯度提升 | 函数空间 | ||
梯度下降 | 参数空间 |
- GBDT的优点和局限性:
- 优点:
(1) 预测阶段的计算速度快,树与树之间可并行计算。
(2) 在分布稠密的数据集上,泛化能力和表达能力都很好。
(3) 采用决策树作为弱分类器使得GBDT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,也不需要对数据进行特殊的预处理如归一化等。 - 局限:
(1) GBDT在高维稀疏的数据集上,表现不如支持向量机或神经网络。
(2) GBDT在处理文本分类特征问题上,相对于其他模型优势不如在处理数值特征时明显。
(3) 训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提升训练速度。
6、XGBoost与GBDT的联系和区别
- XGBoost与GBDT的联系和区别可以总结成以下几个方面:
- GBDT是机器学习算法,XGBoost是该算法的工程实现。
- 在使用CART作为基分类器时,XGBoost就显式地加入了正则项来控制模型的复杂度,有利于防止过拟合,提高模型的泛化能力。
- GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
- 传统的GBDT使用CART作为基分类器,XGBoost支持多种类型的基分类器,比如线性分类器。
- 传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机森林相似的策略,支持对数据进行采样。
- 传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺失值的处理策略。
小结
这是本章的第二部分,主要讲了梯度提升和梯度下降的区别、GBDT的优缺点、XGBoost与GBDT的联系与区别。
结尾
如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!