在做阿里的o2o优惠券预测的时候学习了GBDT。听闻GBDT的威力,自然要学习学习。

接下来从以下几个方面记录下我对于GBDT的理解。

GBDT的用途,优势

GBDT的结构和算法流程

GBDT如何训练

Sklearn 的GBDT使用,参数意义

GBDT的用途,优势

GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,
该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力较强的算法。
GBDT可以用于分类,也可以用于回归,并且还可以用户特征的筛选。
GBDT的思想使其具有天然优势可以发现多种有区分性的特征以及特征组合。业界中,Facebook使用其来自动发现有效的特征、特征组合,来作为LR模型中的特征,以提高 CTR预估(Click-Through Rate Prediction)的准确性
 
GBDT的概念:
 
GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升决策树。Boosting方法是使用一组弱学习器提升为一个强学习器的方法。要求这些弱学习器是各不相同的,也就是对于同一样本要求有不同的预测结果(如果相同就没有组合的必要了,毕竟是要长短互补的)。还要求这些学习器的准确率要比随机猜好一些。
DT也就是Decision Tree,决策树。决策树分为回归树和分类树两大类。GBDT使用的是分类树。
 
GBDT的结构和算法流程:
 
GBDT,
GBDT由多棵树组成,每棵树是回归树。
GBDT的多棵树组合方式与Adaboost的方式不一样。GBDT的每棵树都是学习上一棵树的残差,也就是在上一棵树学习的结果上继续学习。
这样做的好处就是如果上一棵树完全正确分类,在下一颗树上就不需要学习了,对于误差比较大的才需要继续学习。
 
举个例子,参考自一篇博客(参考文献 4),该博客举出的例子较直观地展现出多棵决策树线性求和过程以及残差的意义。
  训练一个提升树模型来预测年龄:
  训练集是4个人,A,B,C,D年龄分别是14,16,24,26。样本中有购物金额、上网时长、经常到百度知道提问等特征。提升树的过程如下:

图中是直接选取了平均值作为预测值,然后通过真实值减去预测值计算残差 。第二棵树学习上一棵树的残差。

在实际使用过程中GBDT算法还有一些问题,即如何划分树,如何确定预测的函数,如何计算残差,如何训练。

(1)如何划分树,也就是我们使用哪一个属性的哪一个值来作为划分条件进行划分。

对于每个特征,尝试这个特征的可能的值进行划分,(如果是连续值的话,可以参考西瓜书,对于连续值的处理)

选择的标准是最小化平方误差,但是也不都是这一个代价函数。

选择第J个变量xi 和他的取值S,作为切分变量和切分点。并且定义两个区域:

然后寻找最优的切分变量J和最优切分点S。具体的,求解:

(2)如何确定训练的函数

每一棵树都是一个回归树,用一个线性函数去拟合目标值,不一定是用平均值。

每迭代一轮就是多一个树,来对上次的残差进行训练。

(3)如何计算残差

使用梯度的绝对值拟合残差,还要乘以一个学习率

(4)如何训练

每轮迭代的时候,首先要使用上一轮训练完的残差来训练出本轮的决策树

要训练出来的这个决策树,加上之后,使得整体的代价函数的值最小。

关于GBDT的损失函数,正则化部分看明白了再继续写



参考资料:

shttps://www.jianshu.com/p/005a4e6ac775

《统计学习原理》

GBDT 总结文档的更多相关文章

  1. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  2. dotNET跨平台相关文档整理

    一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...

  3. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  4. ABP文档 - EntityFramework 集成

    文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...

  5. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  6. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  7. ABP文档 - Hangfire 集成

    文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...

  8. ABP文档 - 后台作业和工作者

    文档目录 本节内容: 简介 后台作业 关于作业持久化 创建一个后台作业 在队列里添加一个新作业 默认的后台作业管理器 后台作业存储 配置 禁用作业执行 Hangfire 集成 后台工作者 创建一个后台 ...

  9. ABP文档 - Javascript Api

    文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...

随机推荐

  1. Scala 中我们长见到=> 解析下

    =>这符号其实是映射转化的意思,个人理解,可能不准确, var increase = (x: Int) => x + 1 increase(10) res0: Int = 11 意思就是你 ...

  2. 品友推广的投放原理 RTB:Real Time Bidding(实时竞价) DSP:Demand-Side Platform(需求方平台) 广告交易平台:AD Exchange

    总结: 1.实时竞价 0.1秒出价各个广告主出价,投放价高者: RTB(Real Time Bidding)实时竞价,是一种利用第三方技术在数以百万计的网站或移动端针对每一个用户展示行为进行评估以及出 ...

  3. c++ 模板 不能 分离编译

    C++Template头文件和定义分开编译的问题 (1) // Foo.htemplate<typename T>class Foo{public:void f();}; // Foo.c ...

  4. 学会这些你就是Android 开发高手了!

    世界范围内,很多移动设备都是Android系统,Android开发可以说很有前景.对于安卓开发者来说,如果有个地方可以找到Android开发所有的资料,不需要一个网站一个网站的搜索,简直是件很开心的事 ...

  5. PAT 天梯赛 L1-022. 奇偶分家 【水】

    题目链接 https://www.patest.cn/contests/gplt/L1-022 AC代码 #include <iostream> #include <cstdio&g ...

  6. js小技巧(收集的)

    一.事件源对象 event.srcElement.tagName //IE浏览器 event.srcElement.type event.target.tagName //dom浏览器 event.t ...

  7. Flume1.7.0的安装与使用

    Flume下载后,解压,新增一个配置文件,写入配置即可 我将配置文件写在 conf 下,取名为 flume-conf-spooldir.properties Flume 运行命令: bin/flume ...

  8. ExtJS + fileuploadfield实现文件上传

    后台服务端接收文件的代码: /** * 后台上传文件处理Action */ @RequestMapping(value = "/uploadFile", method=Reques ...

  9. Microservice 概念

    一天我司招财猫姐(HR 大人)问我,你给我解释一下 Microservice 是什么吧.故成此文.一切都是从一个创业公司开始的. 故事 最近的创业潮非常火爆,我禁不住诱惑也掺和了进去,创建了一家公司. ...

  10. 双camera景深计算

    https://sanwen8.cn/p/2e41VC5.html 本文系微信公众号<大话成像>,知乎专栏< all in camera>原创文章,转载请注明出处. 接着上一篇 ...