<五>、简单分析基于物品的 CF(Item CF)推荐算法
来源:互联网 发布:mac远程连接vps 编辑:程序博客网 时间:2024/06/07 17:24
参考:https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/
http://blog.fens.me/mahout-recommendation-api/
一、基本原理
基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。
图 3.基于物品的 CF 的基本原理
基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。
从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。
上图给出了一个例子,对于物品A,根据所有用户的历史偏好,喜欢物品A 的用户都喜欢物品C,得出物品A 和物品C 比较相似,而用户C 喜欢物品A,那么可以推断出用户C 可能也喜欢物品C。
二、算法实现
首先计算物品之间的相似度,然后根据物品的相似度和用户的历史行为给用户生成推荐列表
步骤
1. 建立物品的同现矩阵
2. 建立用户对物品的评分矩阵
3. 矩阵计算推荐结果
拿Mahout In Action中的案例说明
测试数据:
1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.5
3,104,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0
数据说明:用户ID,物品ID,评分
转化为矩阵:
步骤1:建立物品的同现矩阵
按用户分组,找到每个用户所选的物品,单独出现计数及两两一组计数。即统计任一两个物品同时被评分的人的个数,首行首列和对角线值相同代表物品单独出现的次数,例如对于101商品1、2、3、4、5用户都有评分即其本身出现了5次所有(101,101)为5,(101,102)代表同时对101和102评分的用户个数即1、2、5号用户共三个人所以(101,102)为3.
步骤2:建立用户对物品的评分矩阵
对于3号这个用户就是标黄了的
步骤3:矩阵计算推荐结果 其中对3号用户的计算为同现矩阵与3号用户对物品的评分矩阵相乘
对于3用户推荐其没有评分的的102、103、106中的103,103的26.5值最高,和计算结果一致
1 [104:1.280239,106:1.1462644,105:1.0653841,107:0.33333334]
2 [106:1.560478,105:1.4795978,107:0.69935876]
3 [103:1.2475469,106:1.1944525,102:1.1462644]
4 [102:1.6462644,105:1.5277859,107:0.69935876]
5 [107:1.1993587]
- <五>、简单分析基于物品的 CF(Item CF)推荐算法
- 基于物品的协同过滤算法(Item-CF)
- 推荐算法--基于物品协同过滤算法实现(python: Item-CF)
- Mahout并行基于物品的协同过滤算法源码分析(Distributed item-based CF)
- 基于物品的CF
- mahout 0.6基于Item的CF代码分析
- 基于用户协同过滤(User-CF)的推荐算法
- 基于物品的推荐算法
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms” .
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms” .
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 基于物品的协同过滤推荐算法——读“Item-Based Collaborative Filtering Recommendation Algorithms”
- 【推荐系统】协同过滤(CF)算法详解,item-base,user-based,SVD,SVD++
- C++函数2
- 好久没有写博客了。。。说说最近的感悟即学到的东西。。。
- Log4J日志配置详解
- 域名跳转代码
- selenium -- Xpath 使用
- <五>、简单分析基于物品的 CF(Item CF)推荐算法
- centos7下svn服务器搭建并配置http
- IntelliJ IDEA 14 注册码
- 相关性学习—python实现Pearson相关系数
- IntelliJ IDEA For Mac 快捷键
- c#通用配置文件读写类与格式转换(xml,ini,json)
- 【DL--14】Keras案例学习-- CNN做手写字符分类(mnist_cnn )
- centos安装redis
- gulp菜鸟级零基础详细教程,嘴对嘴教会你怎么使用gulp