内容简介:【Spark排序算法系列】主要介绍的是目前推荐系统或者广告点击方面用的比较广的几种算法,和他们在Spark中的应用实现,本篇文章主要介绍LR算法。本系列还包括(持续更新):
“
【Spark排序算法系列】主要介绍的是目前推荐系统或者广告点击方面用的比较广的几种算法,和他们在Spark中的应用实现,本篇文章主要介绍LR算法。
”
【Spark排序算法系列】主要介绍的是目前推荐系统或者广告点击方面用的比较广的几种算法,和他们在Spark中的应用实现,本篇文章主要介绍LR算法。
本系列还包括(持续更新):
-
Spark排序算法系列之GBDT(梯度提升决策树)
-
Spark排序算法系列之LR(逻辑回归)
-
Spark排序算法系列之XGBoost
-
Spark排序算法系列之FTRL(Follow-the-regularized-Leader)
-
Spark排序算法系列之FM与FFM
背景
关于LR和GBDT的介绍和Spark实现可参考上边的链接,这里再简单做下说明。
LR是最成熟、业界使用最广泛的模型,由于其简单、可解释、易大规模并行、线上预测速度快等优点被广泛应用。但其对特征工程强依赖,其预测能力完全取决于特征的丰富度,费时吃力且不一定有效。
GBDT是非常经典的统计学习模型,是一种非参数学习模型,能较好的拟合非线性。其基于Boosting思想,迭代计算出一系列简单决策树,其中后一棵树用于拟合他前边所有树的残差。其优点是:学习能力强、可解释性好、能拟合数据中复杂的非线性模式、擅长处理连续型特征、相比LR/SVM降低了人工处理特征的工作量;缺点是:模型复杂度高、资源消耗严重。
GBDT+LRgbdt模型的基模型是单棵CART决策树,其原理使得他能发现特征的相对重要度,并进行自动特征组合——从根节点到叶子节点的一条路径即是一组用多个特征对样本进行判别的规则,不同类别的样本通过GBDT往往会激活不同的叶子节点集,因此样本所激活的叶子节点的分布情况就可以视为一种特征的组合。 于是将GBDT模型本身用作一种特征的组合器,用他自动构造有效的特征组合,然后再将这些特征输入简单分类器执行最终的分类任务。
图中共有两棵树,x为一条输入样本,遍历两棵树后,x样本分别落到两颗树的叶子节点上,每个叶子节点对应LR一维特征,那么通过遍历树,就得到了该样本对应的所有LR特征。构造的新特征向量是取值0/1的。举例来说:上图有两棵树,左树有三个叶子节点,右树有两个叶子节点,最终的特征即为五维的向量。对于输入x,假设他落在左树第一个节点,编码[1,0,0],落在右树第二个节点则编码[0,1],所以整体的编码为[1,0,0,0,1],这类编码作为特征,输入到LR中进行分类。
Spark实现
main 函数调用GBDT函数,生成新的特征,相关参数
创建spark对象并加载数据集
创建新的数据集
创建LR模型进行预测
gbdt生成新的特征实现
GBDT+LR局限性
GBDT+LR能取代特征工程,真正地解放特征交叉、组合、高阶特征设计这些过程吗?笔者认为并不能。主要原因是GBDT模型的结构并不是为了特征组合而专门设计的,只是它的基模型——决策树的天然结构使其恰好有类似于特征组合的功能,于是就将其拿来做这项工作。此外,它构造组合特征的形式比较单一:贪心地以最小化平方误差或基尼指数的方式构造决策路径,并以其对应的一组分支规则形成特征组合,这实际上并没有解决二阶乃至高阶特征交叉的问题,且对稀疏特征的学习能力较弱。因此在后续的迭代中,我们将尽快跟进FM/FFM, GBDT+FM, DNN, Wide & Deep等特征组合能力更强的模型。
参考资料
-
http://ihuafan.com/%E7%AE%97%E6%B3%95/gbdtlr-push-notification#%E7%89%B9%E5%BE%81%E5%92%8C%E6%A8%A1%E5%9E%8B%E8%AE%AD%E7%BB%83
-
https://www.deeplearn.me/1944.html
在这浮躁的社会沉静,用心记录,用心学习!
关于【数据与算法联盟】
专注于推荐系统,深度学习,机器学习,数据挖掘,云计算,人工智能,架构和编程等技术干货的分享和探讨,偶尔会推送一些福利,文字,摄影和游记,扫码关注,不再孤单。
更多干货,扫码关注
热
相关文章
Spark排序算法系列之(MLLib、ML)LR使用方式介绍
多分类逻辑回归(Multinomial Logistic Regression)
欢迎投稿,凡是投稿一经录用者,赠送技术图书和相关学习资料
国内各大互联网公司,可内推
关注公众号,加小编微信,拉你进
【 数据与算法交流群 】
你点的每个 “在 看” ,我都认真当成了喜欢
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 算法之常见排序算法-冒泡排序、归并排序、快速排序
- 排序算法之冒泡排序改进算法
- 快速排序算法,C语言快速排序算法深入剖析
- 排序算法下——桶排序、计数排序和基数排序
- 数据结构和算法面试题系列—排序算法之快速排序
- 数据结构和算法面试题系列—排序算法之基础排序
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX环境高级编程
W.Richard Stevens Stephen A.Rago、Stephen A. Rago / 人民邮电出版社 / 2006-2 / 99.00元
本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。在本书第一版出版后的十几年中,UNIX行业已经有了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信......一起来看看 《UNIX环境高级编程》 这本书的介绍吧!