GBDT+LR原理和实战

GBDT+LR简单实战
1. 背景

在早期的广告点击预测(CTR)建模中,工业界用的最频繁的模型是逻辑回归LR。由于逻辑回归本质上是线性模型(线性拟合后经过sigmoid变换),是十分容易并行化的,处理工业界当中的亿级数据速度非常快,因此受到青睐。但是另一方面,逻辑回归的简单导致了其学习能力有限,需要大量的特征工程来增强其预测能力。不过传统特征工程主要集中在寻找有区分度的特征或者特征组合,这种耗时费力的工作却不一定能带来稳定的提升,因此GBDT这种自动学习特征的树模型便被应用了过来。

2014年Facebook的文章介绍了通过GBDT+LR融合建模的思路,随后kaggle比赛中越来越多coder尝试了这种模型,并取得了很好的效果,于是GBDT+LR被工业界关注并应用。

2. GBDT+LR的结构

GBDT+LR总的来讲分为三步:

  1. 原始数据训练GBDT模型
  2. GBDT模型将原始数据(训练集、测试集)转化为0-1稀疏向量
  3. 用2中得到的训练集稀疏向量训练LR
  4. LR对2中得到测试集稀疏向量预测

结合Facebook文章中的图来阐述:

GBDT+LR结构图

图中共有两棵树,x为一条输入样本,遍历两棵树后,x样本分别落到两颗树的叶子节点上,每个叶子节点对应LR一维特征,那么通过遍历树,就得到了该样本对应的所有LR特征。构造的新特征向量是取值0/1的。举例来说:上图有两棵树,左树有三个叶子节点,右树有两个叶子节点,最终的特征即为五维的向量。对于输入x,假设他落在左树第一个节点,编码[1,0,0],落在右树第二个节点则编码[0,1],所以整体的编码为[1,0,0,0,1],这类编码作为特征,输入到LR中进行分类。

那么为什么采用GBDT呢?

  1. 首先GBDT是集成模型,相较于单颗树对于原始数据特征的表达能力更强,也更能发现有效的特征和特征组合;
  2. 其次相较于随机森林RF,GBDT前边的树学习到的特征是原始数据中区分度较大的特征,后边的树中的特征是经过前边的树,残差仍然较大的特征,因此采用GBDT学到的特征是先选择区分度较大的特征,再选择残差较大的特征,思路更加清晰合理。
3. 代码实战
  1. 数据集

    # implementation of GBDT+LR
    # import relative library
    
    import numpy as np
    import lightgbm as lgb
    from sklearn.datasets import load_breast_cancer
    from sklearn.model_selection import train_test_split
    from sklearn.linear_model import LogisticRegression
    from sklearn.metrics 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值