GBDT有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree),其实都是指的同一种算法。
加法模型:
一、前向分布算法
其中, 为基函数, 为基函数的参数, 为基函数的系数。
在给定训练数据及损失函数 的条件下,学习加法模型成为损失函数极小化问题:
,同时求解这么多参数会很复杂。
前向分步算法求解这一优化问题的思路:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步去逼近上述的目标函数式,就可简化优化的复杂度,每一步只需优化如下损失函数:
(每步学习一个基函数和系数)
前向分步算法流程:
输入:训练数据集T=({ });损失函数L(y,f(x));基函数集{ };
输出:加法模型f(x)
(1) 初始化
(2) 对m=1,2,...,M
(a) 极小化损失函数
得到参数
(b)更新
(3)得到加法模型
二、负梯度拟合
提升树用加法模型与前向分布算法实现学习的优化过程。当损失函数为平方损失和指数损失函数时,每一步优化是很简单的。但对于一般损失函数而言,往往每一步都不那么容易。对于这问题,Freidman提出了梯度提升算法。这是利用最速下降法的近似方法,其关键是利用损失函数的负梯度在当前模型的值:
作为回归问题在当前模型的残差的近似值,拟合一个回归树。
为什么要拟合负梯度呢?这就涉及到泰勒公式和梯度下降法了。
泰勒公式的形式是这样的:
- 定义:泰勒公式是一个用函数在某点的信息描述其附近取值的公式。
- 基本形式:
- 一阶泰勒展开:
梯度下降法
在机器学习任务中,需要最小化损失函数