推荐算法

传统推荐算法(五)LR+GBDT(1)剑指GBDT

大城市里の小女人 提交于 2019-11-28 05:55:27
文章目录 写在前面 1. GBM 1.1 从参数空间到函数空间: 1.2 从非参估计到参数估计 1.3 泰勒展开近似 2. GBM的基学习器 2.1 基学习器选择 2.2 CART回归树 3. GBDT之回归 4. GBDT之分类 4.1 二类逻辑回归和分类 4.2 多类逻辑回归和分类 5. 反思总结 5.1 样本权重调整 5.2 GBDT优缺点 6. GBDT资料推荐 参考 公众号 写在前面 学习GBDT的时候,被网上的几篇文章搞晕了,就去看了下GBDT的论文,整理了一些思路,结合参考中的一些内容,整理了这篇文章。本文将循序渐进,从GB,DT讲到GBDT,细致分析下GBDT的原理。本人才疏学浅,有些地方可能理解得不对,欢迎指出错误。学习过程中,薛大佬的这篇文章给了我很多启发:http://xtf615.com/paper/GBM.html。他本人也很热心地帮我解答疑问,在此特别感谢。 机器学习中的 Boosting 算法族有两大类,一类是 weight_boosting,其中以 adaboost 为主要代表,另一类是 gradient_boosting,其中以 gbdt 为主要代表[1]。GBDT是机器学习竞赛中常用的一种算法,据统计,Kaggle比赛中50%以上的冠军方案都是基于GBDT算法[2]。有人称之为机器学习TOP3算法。 1999年,Jerome Harold

推荐算法介绍

白昼怎懂夜的黑 提交于 2019-11-28 05:21:39
参考:今日头条推荐算法原理详解https://lusongsong.com/info/post/9829.html?__SAKURA=1bfda19153216f98a2cd21274262ab30d1566441057_1518905 1.典型推荐算法 2.典型推荐特征 主要有四类特征会对推荐起到比较重要的作用。 第一类是相关性特征,就是评估内容的属性和与用户是否匹配。 显性的匹配包括关键词匹配、分类匹配、来源匹配、主题匹配等。像FM模型中也有一些隐性匹配,从用户向量与内容向量的距离可以得出。 第二类是环境特征,包括地理位置、时间。 这些既是bias特征,也能以此构建一些匹配特征。 第三类是热度特征。 包括全局热度、分类热度,主题热度,以及关键词热度等。内容热度信息在大的推荐系统特别在用户冷启动的时候非常有效。 第四类是协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。 协同特征并非考虑用户已有历史。而是通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力。 3.召回策略 见https://www.cnblogs.com/graybird/p/11393511.html 不同公司业务会设计自己的召回策略 4.数据依赖 5.评估体系 来源: https://www.cnblogs.com/graybird

【机器学习】推荐算法正负样本选择方法调研总结

余生颓废 提交于 2019-11-28 01:28:59
1. 正负样本构造常规方法 推荐算法更多是有监督的学习,一般情况下将有行为的用户作为正样本,但是不绝对,取决于目标是什么。因此需要首先充分了解需求,比如目标的群体是什么,事件或推荐的物品是什么,最终以什么样的形式落地,以及诉求的目标和期望的效果。 (1)正负样本的比例方面 正样本是少数:比如活动的参与、游戏的点击等场景,这类情况正样本相比于负样本一般是极少的,所以需要在充分保留正样本基础上选择负样本。这类情况建议保留全部正样本,在按照1:X的比例选择负样本,X可根据数量适当决定,一般建议4、5比较合适。 正样本是多数:比如流失预警,负样本是少数。则需要对正样本做抽样,再按照1:X的方式选择负样本。 (2)框定群体范围 取什么样本?取的样本中对正负样本的条件需要是公平的。例如,如果是流失预警,那就需要取还在活跃的用户群体;如果是某个活动,那就需要取在这个活动中有曝光的用户群体。 取多长周期?按照需求、频率、数据量确定。 (3)搭建特征 样本好坏决定方向正不正,特征的好坏决定了效果大致高低水平。 如果使用的是LR这类线性模型,想要刻画好非线性问题,就需要把特征做的足够复杂和准确,从而引入足够的非线性来弥补算法本身的局限,使其能够拟合复杂问题。 如果对现在的业务与不够熟悉对数据不够敏感,可以使用一些非线性的算法(FM, GBDT, xgboost, NN)

C++与算法学习路线与书籍推荐

时光毁灭记忆、已成空白 提交于 2019-11-27 14:28:11
C++学习书籍推荐 1:《C++ Primer》——C++入门百科全书书籍,包含了绝大部分C++特性的讲解 2:《Effective C++》和《Exceptional C++》——C++进阶书籍,包含了C++编程的一些精髓注意点 设计模式 《大话设计模式》——包含了程序设计中几十种常用的设计模式。 算法学习 1:《数据结构与算法》——计算机相关学科学生必备的教材 2:《编程之美》、《编程珠玑》等书——包含了一些常用面试算法的相关解答 3:Leecode——在线刷题平台,多刷几遍对于提升数据结构与算法大有裨益 vim使用 《Vim实用技巧》——提升Vim使用效率的必备参考书籍 脚本学习 《linux Shell脚本攻略》——shell学习的入门书籍 其他书籍 1:《TCP/IP Sockets编程》——很薄的一本书籍,可以作为延伸阅读书籍 2:《Linux多线程服务端编程——使用muduo C++网络库》——可以作为延伸阅读书籍 来源: CSDN 作者: qq_22213889 链接: https://blog.csdn.net/qq_22213889/article/details/85677056

目标跟踪算法综述

眉间皱痕 提交于 2019-11-27 05:22:51
转自 https://www.zhihu.com/question/26493945 作者:YaqiLYU 第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。。如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50和OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆): Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013. Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015. 顶会转顶刊的顶级待遇,在加上引用量1480+320多,影响力不言而喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载: Visual Tracker Benchmark ,OTB50包括50个序列,都经过人工标注: 两篇论文在数据库上对比了包括2012年及之前的29个顶尖的tracker,有大家比较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是顶会转顶刊的神作

10种传统机器学习算法

不羁岁月 提交于 2019-11-26 22:30:54
1基于CF的推荐算法 1.1算法简介 CF(协同过滤)简单来形容就是利用兴趣相投的原理进行推荐,协同过滤主要分两类,一类是基于物品的协同过滤算法,另一种是基于用户的协同过滤算法,这里主要介绍基于物品的协同过滤算法。 给定一批用户,及一批物品,记Vi表示不同用户对物品的评分向量,那么物品i与物品j的相关性为: 上述公式是利用余弦公式计算相关系数,相关系数的计算还有:杰卡德相关系数、皮尔逊相关系数等。 计算用户u对某一物品的偏好,记用户u对物品i的评分为score(u,i),用户u对物品i的协同过滤得分为rec(u,j)。 1.2业务实践 以购物篮子为例,业务问题:根据用户的历史购买商品记录,给用户推荐一批商品,协同过滤算法实现方法如下。 记buyers表示用户购买商品的向量,记为 其中表示全库用户集合,表示用户对商品的得分,定义如下: Step1:计算物品之间的相关系数 记buyersi表示用户购买商品的向量,记buyersi=(…,bu,i,…) u∈U为,其中U表示全库用户集合,bu,i表示用户u对商品i的得分,定义如下: 那么商品i与商品j的相关系数如下: 上述公式是是利用余弦公式计算相关性,含义是商品的用户购买向量夹角越小越相似。此外也可以运用皮尔逊、杰卡德、自定义公式计算相关性,这里不一一列举。 Step2:计算用户对商品的协同过滤得分 给定一个用户u

协同过滤推荐算法的原理及实现

我是研究僧i 提交于 2019-11-26 21:14:11
一、协同过滤算法的原理及实现 协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是 基于用户 的协同过滤算法(user-based collaboratIve filtering),和 基于物品 的协同过滤算法(item-based collaborative filtering)。简单的说就是:人以类聚,物以群分。下面我们将分别说明这两类推荐算法的原理和实现方法。 1.基于用户的协同过滤算法(user-based collaboratIve filtering) 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。简单的说就是如果A,B两个用户都购买了x,y,z三本图书,并且给出了5星的好评。那么A和B就属于同一类用户。可以将A看过的图书w也推荐给用户B。 1.1寻找偏好相似的用户  我们模拟了5个用户对两件商品的评分,来说明如何通过用户对不同商品的态度和偏好寻找相似的用户。在示例中,5个用户分别对两件商品进行了评分

协同过滤

六月ゝ 毕业季﹏ 提交于 2019-11-26 20:09:54
推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究。推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结。 协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为“邻居”,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。 为了方便了解,举个简单的例子。 最近新上映了10部电影,你不知道看哪一部,问你周围的人,身边的人中你觉得有少数几个人跟你的观影品味一致,然后你会倾向于选择观看和你观影品味一致的人所推荐的电影,这个和你观影品味一致的人,就成了你的“邻居”。这就是协同过滤的核心思想。 协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,就是通过在线数据找到用户可能喜欢的物品,而离线过滤,则是过滤掉一些不值得推荐的数据,比如推荐值评分低的数据,或者虽然推荐值高但是用户已经购买的数据。   协同过滤的模型一般为m个物品,n个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白,此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给用户。   一般来说,协同过滤推荐分为三种类型。

编程学习辅助工具

吃可爱长大的小学妹 提交于 2019-11-26 17:13:16
可视化的算法网站 最近学习算法课程,在一个课程的官网上 CSE373: Data Structures and Algorithms, Princeton University 。发现一个工具推荐Useful Tools,推荐了【 VisuAlgo - visualising data structures and algorithms through animation 】 来源: https://blog.csdn.net/tcc2430/article/details/98967219

HHR计划---电商推荐算法

不问归期 提交于 2019-11-26 12:07:47
一,只用LR的AUC对比: 1,LR demo: 2,LR one-hot之后: 3,LR + 网格搜索: 二,只用XGBoost的AUC对比(seed都指定为66): 1,XGBoost demo: 2,XGBoost + 网格搜索(只搜迭代速率): 3,XGBoost+网格搜索: 4,XGBoost+网格搜索,用模型和用grid进行fit的区别: 5,XGBoost+regression: 6,XGBoost的参数进一步研究,比如score: 三,XGBoost+LR: 四,wide&deep: 五,FM:(调用survise): 六:GBDT+LR: 来源: https://www.cnblogs.com/yueyebigdata/p/11319046.html