树模型(五):GBDT

GBDT这个名字非常有深意:G-gradient(表示该算法是基于梯度的),B-Boosting(表示该算法是boosting模型),DT-decision tree(表示算法内部使用的是决策树)

1 梯度与残差

在RF、Adaboost等加法模型中,都是通过直接拟合真实值来构建模型的,而在GBDT里面(下面这句话是重点,认真理解,并且多读几遍):非首轮迭代的模型拟合的目标值不再是真实值,而是一个梯度值,主要是通过拟合损失函数的负梯度值在当前模型的值来构建模型。其梯度值表达式如下:

r m i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) r_{mi} = -\left [ \frac{\partial L(y_{i},f(x_{i}))}{\partial f(x_{i})}\right ]_{f(x) = f_{m-1}(x)} rmi=[f(xi)L(yi,f(xi))]f(x)=fm1(x)

当损失函数为平方损失的时候,损失函数可以表示为:

L ( y i , f ( x i ) ) = 1 2 ( y i − f ( x i ) ) 2 L(y_{i},f(x_{i})) = \frac{1}{2} (y_{i} - f(x_{i}))^{2} L(yi,f(xi))=21(yif(xi))2

此时当前模型下损失函数的负梯度值正好等于残差: r m i = y i − f ( x i ) r_{mi} = y_{i} - f(x_{i}) rmi=yif(xi)

2 原理剖析(回归问题)

2.1 算法流程

在2001年的论文《Greedy function approximation: A gradient boosting machine》(有时间可以仔细推敲,很不错,包括二分类/回归、多分类/回归情况)中,介绍了梯度提升的基本思想,本文仅仅摘录了论文gradient boosting思想部分(如果想要全面了解GBDT,还请读者移步到原始paper中),梯度提升的算法流程如下:

算法解析

  1. 第1行初始化模型,估计损失函数极小化的常数值;
  2. 第2行迭代的训练M个子模型;
  3. 第3-6行为子模型的训练细节,
    • 首先第3行是计算损失函数 L ( y i , F ( x i ) ) L(y_{i},F(x_{i})) L(yi,F(xi))在当前模型 F ( x i ) F(x_{i})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值