从理论到实践的梯度提升(第一部分)

梯度提升实践(第一部分)

照片由Jens Lelie在Unsplash上提供

梯度提升是一种广泛应用的机器学习技术,它基于提升梯度下降的组合。

提升是一种集成方法,它将多个弱学习器(或基学习器)组合起来创建一个强预测模型。基模型按顺序训练,每个模型都专注于纠正前面模型的错误。

梯度提升中,每个基模型都被训练以预测先前模型的预测结果对损失函数的负梯度。因此,将新训练的基学习器添加到集成中会在损失的最小值方向上迈出一步。这个过程类似于梯度下降,但它在函数空间中操作,而不是参数空间。因此,它被称为函数梯度下降

当弱学习器是决策树时,得到的方法被称为梯度提升决策树(GBDT)或梯度提升机(GBM)。

梯度提升是处理结构化数据的最佳算法之一,并且在许多标准分类基准上提供了最先进的结果。与深度学习一起,它是Kaggle竞赛中最常用的算法之一。

梯度提升算法最初由Jerome Freidman于2001年开发[1]。此后,它已扩展为包括XGBoost、CatBoost和LightGBM在内的算法家族。这些算法的变体包含了各种增强功能,进一步提高了梯度提升的性能和可扩展性。

本文深入介绍了梯度提升的理论和实现。文章的第一部分将重点介绍梯度提升的理论概念,呈现伪代码,并讨论各种正则化模型的方法。第二部分,我们将探索Scikit-Learn中实现梯度提升的类,并使用它们来解决不同的回归和分类任务。