博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Boosting决策树:GBDT
阅读量:7196 次
发布时间:2019-06-29

本文共 2183 字,大约阅读时间需要 7 分钟。

GBDT (Gradient Boosting Decision Tree)属于集成学习中的Boosting流派,迭代地训练基学习器 (base learner),当前基学习器依赖于上一轮基学习器的学习结果。 不同于自适应地调整样本的权值分布,GBDT是通过不断地拟合残差 (residual)来“纠错”基学习器的。

1. Gradient Boosting

Gradient Boosting Machine (GBM) 是由大牛Friedman [1,2] 提出来,基本思想非常简单:基学习器存在着分类/回归错误的情况,在下一轮基学习器学习时努力地纠正这个错误。在回归问题中,这个错误被称为残差。比如,在学习样本\((x, y)\)得到一个模型\(f\),预测值为\(\hat{y} = f(x)\);那么残差则为:

\[ y - \hat{y} = y- f(x) \]

如果定义损失函数为平方损失\(\frac{1}{2}(y-f(x))^2\),那么其梯度为

\[ \frac{\partial \frac{1}{2}(y-f(x))^2}{\partial f(x)} = f(x) - y \]

可以发现:残差为负梯度方向。对于平方损失,每一步优化是很简单的;但是,对于其他损失函数呢?Friedman利用负梯度近似残差,将Gradient Boosting推广到一般损失函数\(L(y, x)\)。步骤如下:

(1) 计算伪残差 (pseudo-residual),

\[ r_{im} = - \left[ \frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} \right]_{f = f_{m-1}} \]

(2) 基学习器\(h_m(x)\)拟合样本\(\{ (x_i, r_{im}) \}\)

(3) 计算最优乘子 (multiplier) \(\gamma_m\),使得

\[ \gamma_m = \mathop{\arg \min} \limits_{\gamma} \sum_{i} L(y_i, f_{m-1}(x) + \gamma h_m(x_i)) \]

(4) 更新模型

\begin{equation}

f_m(x) = f_{m-1}(x) + \gamma_m h_m(x)
\label{eq:update}
\end{equation}

如此迭代,直至结束或模型收敛;最后一步得到的模型\(f_M(x)\)即为GBM的最终模型。

2. GBDT

如果基学习器为决策树时,GBM则被称为GBDT。决策树本质上是对特征空间的划分\(\{ R_{jm} \}\),因此基学习器\(h_m(x)\)可改写为

\[ h_m(x) = \sum_j b_{jm} I(x \in R_{jm}) \]

其中,\(b_{jm}\)为预测值,\(I(.)\)为指示函数。那么,式子\eqref{eq:update}可以改写为

\[ f_m(x) = f_{m-1}(x) + \sum_j \gamma_{jm} I(x \in R_{jm}) \]

GBDT的算法步骤如下图所示(图片来自于 ESL [3]):

399159-20170601105737102-1526085083.png

为了减小过拟合,通过Shrinkage的方式:

\[ f_m(x) = f_{m-1}(x) + \upsilon \cdot \gamma_m h_m(x) \]

其中,\(\upsilon\)称之为学习率 (learning rate)。经验表明:当学习率\(\upsilon < 0.1\)时,泛化能力远远超过没有Shrinkage的模型(即\(\upsilon =1\))。但是,低学习率同时也带来了更多的迭代次数。

sklearn包实现了回归GBDT(分类用GradientBoostingClassifier),参数如下

loss: 损失函数,默认为平方损失lslearning_rate: 学习率n_estimators: 基学习器数目max_depth: 决策树的最大深度max_features: 最多特征数

3. 参考资料

[1] Friedman, Jerome H. "Greedy function approximation: a gradient boosting machine." Annals of statistics (2001): 1189-1232.

[2] Friedman, Jerome H. "Stochastic gradient boosting." Computational Statistics & Data Analysis 38.4 (2002): 367-378.
[3] Trevor Hastie, Robert Tibshirani, Jerome H. Friedman. The elements of statistical learning. Springer, Berlin: Springer series in statistics, 2009.
[4] Cheng Li, .

转载于:https://www.cnblogs.com/en-heng/p/6927620.html

你可能感兴趣的文章
Gartner最新发布:2017年十大战略技术趋势
查看>>
《21天学通C语言(第7版)》一2.4 小 结
查看>>
redis集群搭建
查看>>
浅析mybatis源码(二)连接池
查看>>
Zabbix企业微信告警最新版
查看>>
sqlite3 演示
查看>>
Python3.7源码安装
查看>>
从微软中国下载Windows系统并安装
查看>>
java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户...
查看>>
Spring事务管理
查看>>
磁盘格式化、磁盘挂载、手动增加swap空间
查看>>
Java泛型
查看>>
智能合约语言 Solidity 教程系列1 - 类型介绍
查看>>
从0开始,搭建一个完整的Android音视频通信系统
查看>>
一张图看懂阿里云网络产品[十一]云托付
查看>>
ajax主要步骤(讲解2)
查看>>
idea中对多个maven项目打包并发布到服务器
查看>>
菜鸟如何使用hanlp做分词的过程记录
查看>>
6个应当了解的Java比特币开源项目
查看>>
Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
查看>>