GBDT 总结文档
在做阿里的o2o优惠券预测的时候学习了GBDT。听闻GBDT的威力,自然要学习学习。
接下来从以下几个方面记录下我对于GBDT的理解。
GBDT的用途,优势
GBDT的结构和算法流程
GBDT如何训练
Sklearn 的GBDT使用,参数意义
GBDT的用途,优势:
训练一个提升树模型来预测年龄:
训练集是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 总结文档的更多相关文章
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- dotNET跨平台相关文档整理
一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ABP文档 - EntityFramework 集成
文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...
- ABP文档 - SignalR 集成
文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- ABP文档 - Hangfire 集成
文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...
- ABP文档 - 后台作业和工作者
文档目录 本节内容: 简介 后台作业 关于作业持久化 创建一个后台作业 在队列里添加一个新作业 默认的后台作业管理器 后台作业存储 配置 禁用作业执行 Hangfire 集成 后台工作者 创建一个后台 ...
- ABP文档 - Javascript Api
文档目录 本节内容: AJAX Notification Message UI Block & Busy Event Bus Logging Other Utility Functions A ...
随机推荐
- Powershell About Active Directory Server
一.获取域控制器服务器清单 (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | select hos ...
- wsgi pep333
转自:https://www.aliyun.com/jiaocheng/444966.html?spm=5176.100033.1.11.559a7C 摘要:wsgi介绍参考:pep333wsgi有两 ...
- Spring4学习笔记-AOP(基于配置文件的方式)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://shamrock.blog.51cto.com/2079212/1557743 引 ...
- flask大全
django:重武器,内部包含了非常多组件:ORM.Form.ModelForm.缓存.Session,中间件,信号等... flask:短小精悍.内部没有太多组件,第三方组件非常丰富 1.初识fla ...
- 转!!SQL左右连接中的on and和on where的区别
原博文地址:http://blog.csdn.net/xingzhemoluo/article/details/39677891 原先一直对SQL左右连接中的on and和on where的区别不是太 ...
- 原!!关于java 单元测试Junit4和Mock的一些总结
最近项目有在写java代码的单元测试,然后在思考一个问题,为什么要写单元测试??单元测试写了有什么用??百度了一圈,如下: 软件质量最简单.最有效的保证: 是目标代码最清晰.最有效的文档: 可以优化目 ...
- 创建使用pycharm virtualenv
创建使用pycharm virtualenv 在python的世界里,真该感谢有PyCharm,pip,virtualenv 这些好东东,为python程序员提供了极大的方便. virtualenv ...
- [转]Asp.net MVC 中Ajax的使用
Asp.net MVC 抛弃了Asp.net WebForm那种高度封装的控件,让我们跟底层的HTML有了更多的亲近.可以更自由.更灵活的去控制HTML的结构.样式和行为.而这点对于Ajax的应有来说 ...
- 450. Delete Node in a BST
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...
- POJ_2533 Longest Ordered Subsequence【DP】【最长上升子序列】
POJ_2533 Longest Ordered Subsequence[DP][最长递增子序列] Longest Ordered Subsequence Time Limit: 2000MS Mem ...