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
总结
- 上一篇: 关于AUC计算公式推导
- 下一篇: 用户画像-标签