`
- 浏览:
1290419 次
- 性别:
- 来自:
江苏
-
先推荐一本书,csdn上可以下载完美的pdf
Programming Collective Intelligence (
http://www.douban.com/subject/2209702/?from=mb-62346329
)
协同过滤的缺点是
热点相关内容 往往变成了 其他同期出现的热点内容 .
先划分类别(比如SVD),再计算相关,效果往往更好.
1. CF算法(Collaborative Filtering)
http://en.wikipedia.org/wiki/Collaborative_filtering
转载:
协同过滤技术可以分为三类:
基于用户(User-based)的协同过滤
基于项目(Item-based)的协同过滤
基于模型(Model- based)的协同过滤
User-based
http://www.guwendong.cn/post/2006/user_based_collaborative_filtering.html
转载:
步骤一,收集可以代表用户兴趣的信息。
步骤二,最近邻搜索
步骤三,生成推荐结果。
Item-based
http://www.guwendong.cn/post/2006/item_based_collaborative_filtering.html
转载:
Item-based 方法需要同样的三个步骤:
1)得到User-item的评分数据;
2)针对项的最近邻搜索,即对项进行相似度计算
3)产生推荐
相对于 User-based 方法,Item-based 方法最大的改进是提高了协同过滤方法的扩展性及性能。
从上一篇中可以看到,在 User-based 方法中,随着用户数量的不断增多,在大数量级的用户范围内进行“最近邻搜索”会成为整个算法的瓶颈。
Item-based 方法通过计算项之间的相似性来代替用户之间的相似性。对于项来讲,它们之间的相似性要稳定很多,因此可以离线完成工作量最大的相似性计算步骤,从而大大降低了在线计算量,提高推荐效率。
在 Item-based 方法中,要对 A 和 B 进行项相似性计算,通常分为两步:
1)找出同时对 A 和 B 打过分的组合;
2)对这些组合进行相似度计算,常用的算法包括:
皮尔森相关系数(Person Correlation Coefficient)
余弦相似性(Cosine-based Similarity)
调整余弦相似性(Adjusted Cosine Similarity)
http://www.cnblogs.com/kuber/archive/2008/06/10/1216846.html
Slope One :简单高效的协同过滤算法(Collaborative Filtering)
转载:
Slope One;和其它类似算法相比, 它的最大优点在于算法很简单, 易于实现, 执行效率高, 同时推荐的准确性相对很高;
基本概念
Slope One的基本概念很简单, 例子1, 用户X, Y和A都对Item1打了分. 同时用户X,Y还对Item2打了分, 用户A对Item2可能会打多少分呢?
User Rating to Item 1 Rating to Item 2
X 5 3
Y 4 3
A 4 ?
根据SlopeOne算法, 应该是:4 - ((5-3) + (4-2))/2 = 2.5.
解释一下. 用户X对Item1的rating是5, 对Item2的rating是3, 那么他可能认为Item2应该比Item1少两分. 同时用户Y认为Item2应该比Item1少1分. 据此我们知道所有对Item1和Item2都打了分的用户认为Item2会比Item1平均少1.5分. 所以我们有理由推荐用户A可能会对Item2打(4-1.5)=2.5分;
加权算法
接下来我们看看加权算法(Weighted Slope One). 如果有100个用户对Item1和Item2都打过分, 有1000个用户对Item3和Item2也打过分. 显然这两个rating差的权重是不一样的. 因此我们的计算方法是
(100*(Rating 1 to 2) + 1000(Rating 3 to 2)) / (100 + 1000)
上面讨论的是用户只对项目的喜好程度打分.还有一种情况下用户也可以对项目的厌恶程度打分. 这时可以使用双极SlopeOne算法(BI-Polar SlopeOne).
参考资料
论文 http://www.daniel-lemire.com/fr/abstracts/SDM2005.html
How to implement Slope One in Python
http://www.serpentine.com/blog/2006/12/12/collaborative-filtering-made-easy/
相关Python库
http://exogen.case.edu/projects/consensus/
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。...
欣灌费研仍在继续,不能返校只好在家做毕设,毕设的内容是利用地泼雷妞技术优化推荐算法。 悲剧的是地泼雷妞不会,推荐...本文是我的学习笔记,对应此书2.4.1小节, 原理就不介绍了,直接上数据集和代码。 不懂原理的
该笔记是我在学习吴恩达机器学习时整理的,希望能够帮助到大家,如有错误还请大家指正。如果你想进入尖端人工智能领域,该笔记将帮助你做到...使用协同过滤方法和基于内容的深度推荐系统。 希望这个笔记能够帮助到你。
基于协同过滤算法的个性化推荐系统【毕业设计源码+论文】 1、研究目的 基于协同过滤算法的个性化新闻推荐系统能够根据对用户在网站内的操作记录的分析,为用户推荐可能喜欢的新闻内容。另外,该系统还实现了新闻的...
协同过滤 基于内存的协同过滤 用户项目过滤 逐项过滤 基于模型的协同过滤 单值分解(SVD) SVD ++ 混合模型 基于内容+ SVD 项目中包含的文件 movie_recommendation_system.ipynb:python笔记本代码文件 movie_...
电影推荐系统 数据集 用于此笔记本的数据集是MovieLens的1M额定数据集。 其中包含来自7120部电影和14025位用户的100万部电影评级。 该数据集包括: movieId 用户身份 评分 另外,电影的数据集包括电影名称和类型。...
为了实现推荐系统,不得不从原来的基础打牢,今天主要复现之前的代码-2019-08-09今天主要学习经典的案例:主要叉形增加:主要介绍3大模型:协同过滤UserCF的模型基于用户协同过滤算法基于隐语义(LFM)的模型基于图...
leetcode题库 目录 自动数据清理AutoClean 自动特征工程AutoFE 元学习MetaLearning 知识图谱 基础知识 协同过滤 用户画像
基于用户协同过滤与基于物品协同过滤的比较 21天搭建推荐系统:实现“千人千面”个性化推荐(含视频) 探索推荐引擎内部的秘密 推荐系统有哪些坑? 个性化推荐系统的六个问题 deep learning 可以用来做推荐系统吗? ...
电影推荐系统使用两种不同的方法实现: 基于内容:使用TF-IDF矢量化器的余弦相似度协同过滤:具有期望最大化的高斯混合模型 资料夹 代码:包含使用上述方法的jupyter笔记本-> ContentBasedRefined.ipynb(使用scikit...
协同过滤 奇异值分解 (SVD) 交替最小二乘法 (ALS) #特征提取和转换回到顶部 数据整理 [ Notebook ] TF-IDF Word2Vec 标准定标器 归一化器 编码分类 主成分分析 #数据可视化返回顶部 Matplotlib / Seaborn [ ...
中的评级数据训练协同过滤推荐模型,将模型因素保存到 Elasticsearch,然后使用 Elasticsearch 使用该模型提供实时推荐。 您将使用的数据来自推荐社区中的常见基准数据集。 该数据由 MovieLens 电影评级系统的用户对...
一个电影推荐系统(本科毕业设计)-实现用户登录,评分,推荐,采用协同过滤算法。 :cherry_blossom: 作者序 我完成毕业设计的时间线可以参考README末尾的,请注意笔记中所记载的内容和最后的实际成果有所出入,只做...