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的优点的更多相关文章

  1. GBDT+LR算法解析及Python实现

    1. GBDT + LR 是什么 本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical L ...

  2. 个性化排序算法实践(四)——GBDT+LR

    本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题.这个方法出自于Facebook 2014年的论文 Practical Lessons from Predi ...

  3. 推荐系统遇上深度学习(十)--GBDT+LR融合方案实战

    推荐系统遇上深度学习(十)--GBDT+LR融合方案实战 0.8012018.05.19 16:17:18字数 2068阅读 22568 推荐系统遇上深度学习系列:推荐系统遇上深度学习(一)--FM模 ...

  4. 推荐系统实践 0x0d GBDT+LR

    前一篇文章我们介绍了LR->FM->FFM的整个演化过程,我们也知道,效果最好的FFM,它的计算复杂度已经达到了令人发指的\(n^2k\).其实就是这样,希望提高特征交叉的维度来弥补稀疏特 ...

  5. 推荐系统,深度论文剖析GBDT+LR

    今天我们来剖析一篇经典的论文:Practial Lessons from Predicting Clicks on Ads at Facebook.从这篇paper的名称当中我们可以看得出来,这篇pa ...

  6. 基于Spark的GBDT + LR模型实现

    目录 基于Spark的GBDT + LR模型实现 数据预处理部分 GBDT模型部分(省略调参部分) GBDT与LR混合部分 基于Spark的GBDT + LR模型实现 测试数据来源http://arc ...

  7. 深度学习在 CTR 中应用

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:高航 一. Wide&&Deep 模型 首先给出Wide && Deep [1] 网络结构: 本质上 ...

  8. GBDT+LR simple例子

    卧槽,本来猜GBDT获取的组合特征,需要自己去解析GBDT的树,scikit learn里面竟然直接调用apply函数就可以了 # 弱分类器的数目 n_estimator = 10 # 随机生成分类数 ...

  9. SQl语句中使用占位符的优点

    1.增加SQL代码可读性2.占位符可以预先编译,提高执行效率3.防止SQL注入4用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 绑定变量是Oracle解决硬解析的首要 ...

随机推荐

  1. linux,添加新硬盘的方法

    一.物理机添加一块新的硬盘方法(目的是把后加的磁盘直接加在现有的上面,不用再分区挂载)1.首先要确定现有系统在那块盘上  [root@localhost ~]# df -lhFilesystem    ...

  2. (mac系统下)mysql 入门

    1.安装好mysql之后并且服务启动,系统偏好设置里有启动mysql服务的按钮 看到running表示可用 2.通过终端访问mysql 先到mysql的路径下(默认安装没有配置环境变量):cd /us ...

  3. MP实战系列(十八)之XML文件热加载

    你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...

  4. Arduino入门笔记(3):单LED闪烁

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 在搭建好arduino开发环境(http://www.cnblogs.com/xi ...

  5. Arduino入门笔记(1):认识Arduino

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 各种网站论坛里经常看到网友DIY各种遥控小车.机器人什么的,一直很好奇,很想学习一 ...

  6. jquery 同步ajax

    有时,我们需要通过ajax远程获取数据后再绑定给其他应用,其他应用依赖于ajax返回结果.而ajax默认为异步,此时需要改为同步 var data = $.ajax({ url: "/Adm ...

  7. CAN总线几种正常的“异常”波形

    CAN总线几种正常的“异常”波形 [复制链接]       电梯直达 楼主    hubaba 发表于 2016-3-28 14:00 | 只看该作者  摘要 工程师们通常使用示波器观察CAN总线的信 ...

  8. 【php增删改查实例】第九节 - 部门管理模块(模糊查询)

    给datagrid添加一个工具栏. 效果: 模糊查询部门名称. 接下来,在工具栏区域画一个input框: <div id="toolbar" style="padd ...

  9. UCOSII笔记---信号量、邮箱、消息队列、信号量集、软件定时器

    一.接收邮箱函数的参数:timeout表示的是滴答定时器的节拍数,比如设定5ms为一个节拍,超时为100ms,则timeout=20. void *OSMboxPend (OS_EVENT *peve ...

  10. Java中isAssignableFrom()方法与instanceof()方法用法

    一句话总结: isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断. isAssignableFrom()方法是判断是否为某个类的父类, ...