ctr中的GBDT+LR的优点
1 为什么gbdt+lr优于gbdt?
其实gbdt+lr类似于做了一个stacking。gbdt+lr模型中,把gbdt的叶子节点作为lr的输入,而gbdt的叶子节点相当于它的输出y',用这个y'作为lr的x,和stacking是类似的。但是这里和一般的stacking有些差别,stacking的话是多个模型的y'作为stacking模型的输入,训练出这个stacking模型,然后stacking模型的输出作为最终结果。gbdt+lr是每个叶子节点作为这个y'。
另外gbdt的每棵树其实是拟合上一颗树的残差上求得的局部最优解,把所有局部最优解的输出通过lr训练得到一个全局最优解。这里出现一个疑问:gbdt最后集成所有树时每棵树的权重是怎么计算的?
2 为什么gbdt+lr优于lr?
(1)lr算法简单,能够处理超高纬度稀疏问题。但是lr需要人工进行特征组合。gbdt+lr相当于对原始特征通过gbdt进行了特征组合
(2)gbdt对连续特征划分能力强,可以帮助lr处理连续特征,避免了人工对连续特征分箱操作。这里又涉及到另一个问题:
3 为什么lr不能处理连续特征(为什么要把连续特征转化为离散特征后送进lr?)
因为这样可以增加lr的鲁棒性,比如如果把年龄送进lr,那么23和24岁本来相差不大,但是却变成了完全不同的变量,也就是所23岁和24岁的区别程度和23岁和50岁的区别程度是一样的,显然不符合。或者加入一个300岁的偏差特征也可能会影响模型,但对年龄分箱之后就可以避免上述问题,增加模型鲁棒性。
ctr中的GBDT+LR的优点的更多相关文章
- GBDT+LR算法解析及Python实现
1. GBDT + LR 是什么 本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical L ...
- 个性化排序算法实践(四)——GBDT+LR
本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical Lessons from Predi ...
- 推荐系统遇上深度学习(十)--GBDT+LR融合方案实战
推荐系统遇上深度学习(十)--GBDT+LR融合方案实战 0.8012018.05.19 16:17:18字数 2068阅读 22568 推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模 ...
- 推荐系统实践 0x0d GBDT+LR
前一篇文章我们介绍了LR->FM->FFM的整个演化过程,我们也知道,效果最好的FFM,它的计算复杂度已经达到了令人发指的\(n^2k\).其实就是这样,希望提高特征交叉的维度来弥补稀疏特 ...
- 推荐系统,深度论文剖析GBDT+LR
今天我们来剖析一篇经典的论文:Practial Lessons from Predicting Clicks on Ads at Facebook.从这篇paper的名称当中我们可以看得出来,这篇pa ...
- 基于Spark的GBDT + LR模型实现
目录 基于Spark的GBDT + LR模型实现 数据预处理部分 GBDT模型部分(省略调参部分) GBDT与LR混合部分 基于Spark的GBDT + LR模型实现 测试数据来源http://arc ...
- 深度学习在 CTR 中应用
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:高航 一. Wide&&Deep 模型 首先给出Wide && Deep [1] 网络结构: 本质上 ...
- GBDT+LR simple例子
卧槽,本来猜GBDT获取的组合特征,需要自己去解析GBDT的树,scikit learn里面竟然直接调用apply函数就可以了 # 弱分类器的数目 n_estimator = 10 # 随机生成分类数 ...
- SQl语句中使用占位符的优点
1.增加SQL代码可读性2.占位符可以预先编译,提高执行效率3.防止SQL注入4用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 绑定变量是Oracle解决硬解析的首要 ...
随机推荐
- php 基于redis计数器类
本文引自网络 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 本文将使用其incr(自增),get(获取), ...
- 添加外键式异常 1215-cannot add foreign key constranint
添加外键时报错,原因是添加外键的表的字段的字段类型不一致 比如我的第一张表id是int类型,添加约束的dep_id是bigint类型,所以报错,只要把两张表添加约束的字段类型改成统一的即可 本人大学生 ...
- istio1.0.2配置
项目的组件相对比较复杂,原有的一些选项是靠 ConfigMap 以及 istioctl 分别调整的,现在通过重新设计的Helm Chart,安装选项用values.yml或者 helm 命令行的方式来 ...
- bat输出重定向
重定向符号主要有:>,>>,<,>&,<&和|,而本文只讨论前五个. 第一节 首先从一个经典问题开始,“1>nul 2>nul”的意思是 ...
- Xcode7如何真机调试
查阅网上Xcode7如何真机调试,教程我觉得都有点繁琐,然后我自己用3步实现真机测试: 1.左上角Xcode --> Perferences --> Accounts --> ...
- 【小程序】text-indent设置
要想文本首行缩进,则需要设置以下 1. 文本以<view>标签包裹 (可选) 2. 该标签设置margin值 3.以上设置text-indent才会成功
- map的综合例子
#include<iostream> #include<string> #include<map> #include<fstream> #include ...
- vue 使用 proxyTable 解决跨域问题
1.在 main.js 中,在引入 axios: import axios from 'axios' Vue.config.productionTip = false Vue.prototype.$a ...
- 总结 : C#事件理解
要理解事件,首先必须理解委托!! 1.如果说委托是一个类型,那么事件就是一个对象! 2.事件的创建必须是借助某个委托类型来完成的! 3.也就是说,委托是事件的类型,事件本身是个对象!! 4.所以,事件 ...
- debian系统下改语言设置
debian系统下改语言设置 安装debian 的时候选择了中文zh_CN_UTF-8,然后进系统后想换成en_US_UTF-8 可以使用一下命令选择:找到需要的语言 确定即可 dpkg-reconf ...