Xgboost 与 GBDT同源,那么所谓的梯度是什么意思呢?G、B又代表什么。
1. 梯度Gradient
梯度是一个向量(矢量),表示梯度是方向导数在某一点的最大值。理解为某函数(可以指损失函数)在某点处的方向导数,沿着该方向,梯度可以取得最大值,即函数沿着此方向(梯度的方向)变化最快,变化率(梯度的模)最大。
2. 梯度的维度
,在空间中是一个锥面,那么在点 (x, y) 处,梯度表示:(2x, 2y),此时梯度维度是 1 * 2。
假设,当前使用的模型是GBDT,每个样本的特征维度是 1 * m,m表示特征数目,解空间维度就是 1 * m,因此对应的梯度也应该是 1 * m。
此处是个人理解,希望能和大家一起讨论一下这个问题,如果有问题请及时联系。
3. 梯度和梯度下降的关联
梯度下降法的定义:如果实值函数 F(x) 在 a 处可微且有定义,那么 F(x) 在 a 点沿着梯度相反的方向 下降最快。
通常,我们需要求解的是损失函数最小值,因此选择调整参数的方向是梯度的反向。
4. GB(Gradient Boosting) 的含义
翻译为"梯度提升",但是其实是一种梯度下降的思想,总体来看它是将多个弱分类器结合起来得到强分类器的结果。不同于adaboost每次加大分错样本的权重,GB则是每次拟合上一预测的残差。
FrideMan提出:梯度提升算法,利用最速下降的近似方法,即利用损失函数的负梯度在当前模型的值,作为回归问题中提升树算法的残差的近似值,拟合一个回归树。
树模型的梯度提升算法,是在函数空间进行搜索,找到最优的函数,也是梯度下降,所谓的提升指的是模型整体精度提升: