欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

GBDT+LR

发布时间:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 GBDT+LR 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

GBDT + LR 模型融合在之前的推荐系统中很常见,甚至现在有的厂子也在用这一套东西,毕竟每个厂子的业务不同数据不同,所以不同的算法模型效果也会参差不齐

13年左右的时候,业界训练模型主要有两条路:

    大规模特征 + 线性模型(Goole,Baidu)

    中小规模特征 + 非线性模型(Yahoo,Bing,Taobao)

之前很多人都会用到LR,是因为LR是线性模型,可以并行处理大量数据,但是缺点也是同样显著,就是需要大规模的特征;人工处理大量的特征并不能保证会带来效果上的提升,因此如何自动组合、挖掘特征是一个重要的问题。

挖掘特征目前主要有两条路:

 1、FM系列->通过隐变量的形式,挖掘特征之间的组合关系

 2、树系列-> GBDT,Xgboot,lightGBM

今天给大家说一下树系列的组合特征挖掘

GBDT是树系列的一个模型,拆开来看就是 梯度(G)  + 集成(B) + 决策回归树(DT)

首先它是由一颗决策回归树(DT)为单位组成的,这里要注意是回归树不是分类树,两者有区别,例如预测的是身高、年龄这种连续的用回归树,如果出现是否点击,是否聊天这种属于分类

其次它是一个集成(B)的树,它是一个串行的结构和随机森林不同,随机森林是并行结构,为什么说它是串行结构,是因为它会先让第一个树先学习,假如你的目标值是10,第一个树只学到9,那么还有残差为1没有学到,第二颗树的目标值是1而不是10,直到最终学习到的值小于阈值,停止学习

最后说一下梯度(G),说白了它就是往残差逐渐减小的方向学习

LR模型大家应该比较清楚啦,它就是一个线性函数 w1x1+w2x2+......,之后外面套一个sigmoid函数,把最终的数值映射到0-1之间,目的学的是w1,w2.....wn这些参数

GBDT + LR:

说白了就是两步,

第一步把数据输入到gbdt输出的是每条数据对应一个向量,如下图所示

第二步把向量输入到LR分类模型,获取结果

代码实现:

导入相应包

加载数据,预处理

设置参数,输出实验结果:

现在大量的数据业务会出现很多高维度离散数据,很多网上的帖子说之所以现在很多树模型并不适用,是因为大数据高维离散特征,树模型比较容易过拟合,其实以目前我的观点来看,我并不完全赞同这种说法:

1、感觉很多树模型并不适用的主要原因是没有深度模型效果好

2、很多深度模型会加上正则项来控制过拟合,但是在非线性模型树中,你主要就是调整树的深度和个数,通过训练集和测试集合的效果的差值来评判是否是过拟合,一般来说训练集AUC 和测试集AUC 之差大于3%,表示过拟合

3、现在很多公司都在用xgboost,lightgbm这种模型神器,很大一部分原因就是公司业务不同,数据不同,所以不同模型效果不同

很多公司都会测试各种模型,比较那个模型比较好

 

参考:

1、http://quinonero.net/Publications/predicting-clicks-facebook.pdf

2、https://www.jianshu.com/p/96173f2c2fb4

3、https://blog.csdn.net/weixin_41362649/article/details/83184422

4、https://blog.csdn.net/weixin_41362649/article/details/82803279

5、https://blog.csdn.net/weixin_41362649/article/details/82080198

 

总结

以上是生活随笔为你收集整理的GBDT+LR的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。