mapreduce实现ItemCF——基于物品的协同过滤
推荐系统的基本架构:
实时推荐和离线推荐
源码:github
注:以下所有数据之间都是以 \t 隔开的,博客里显示效果不好
数据集:
1 101 5
1 102 3
1 103 3
2 101 2
2 102 3
2 103 5
2 104 2
3 101 2
3 104 4
3 105 5
3 107 5
4 101 5
4 103 3
4 104 4
4 106 4
5 101 4
5 102 3
5 103 2
5 104 4
5 105 3
5 106 4
6 102 4
6 103 2
6 105 3
6 107 4
思路:
1.第一个mapreduce:构建用户评分矩阵
输出结果:
2 101:2 102:3 103:5 104:2
3 107:5 101:2 104:4 105:5
4 103:3 106:4 104:4 101:5
5 101:4 102:3 103:2 104:4 105:3 106:4
6 102:4 103:2 105:3 107:4
2.第二个mapreduce:构建同现矩阵
输出结果:
101:101 5
101:102 3
101:103 4
101:104 4
101:105 2
101:106 2
101:107 1
102:101 3
102:102 4
102:103 4
102:104 2
102:105 2
102:106 1
102:107 1
103:101 4
103:102 4
103:103 5
103:104 3
103:105 2
103:106 2
103:107 1
104:101 4
104:102 2
104:103 3
104:104 4
104:105 2
104:106 2
104:107 1
105:101 2
105:102 2
105:103 2
105:104 2
105:105 3
105:106 1
105:107 2
106:101 2
106:102 1
106:103 2
106:104 2
106:105 1
106:106 2
107:101 1
107:102 1
107:103 1
107:104 1
107:105 2
107:107 2
3.第三个mapreduce:推荐结果=同现矩阵*评分矩阵
用户u对物品j的喜爱程度=u对物品i的评分*j、i的相似度,累加求和。
R=4*5+4*3+5*3+3*0+2*0+2*0+1*0=47
输出结果:
6 10130
1 101 46 已购买
5 101 67 已购买
3 101 41 已购买
2 101 47 已购买
4 101 61 已购买
6 102 34 已购买
1 102 39 已购买
5 102 50 已购买
3 102 29
2 102 42 已购买
4 102 39
6 103 36 已购买
1 103 47 已购买
5 103 64 已购买
3 103 35
2 103 51 已购买
4 103 55 已购买
6 104 24
1 104 35
5 104 58 已购买
3 104 39 已购买
2 104 37 已购买
4 104 53 已购买
6 105 29 已购买
1 105 22
5 105 39 已购买
3 105 37 已购买
2 105 24
4 105 28
6 106 11
1 106 19
5 106 34 已购买
3 106 17
2 106 21
4 106 32 已购买
6 107 20 已购买
1 107 11
5 107 19
3 107 26 已购买
2 107 12
4 107 12
4.将推荐结果排序
通过自定义输入类型,按照用户id升序,分数降序排列
输出结果:
1 101 46 已购买
1 102 39 已购买
1 104 35
1 105 22
1 106 19
1 107 11
2 103 51 已购买
2 101 47 已购买
2 102 42 已购买
2 104 37 已购买
2 105 24
2 106 21
2 107 12
3 101 41 已购买
3 104 39 已购买
3 105 37 已购买
3 103 35
3 102 29
3 107 26 已购买
3 106 17
4 101 61 已购买
4 103 55 已购买
4 104 53 已购买
4 102 39
4 106 32 已购买
4 105 28
4 107 12
5 101 67 已购买
5 103 64 已购买
5 104 58 已购买
5 102 50 已购买
5 105 39 已购买
5 106 34 已购买
5 107 19
6 103 36 已购买
6 102 34 已购买
6 101 30
6 105 29 已购买
6 104 24
6 107 20 已购买
6 106 11
测试数据集 MovieLens ml-100k
推荐结果:
1 181 128318 已购买
1 174 125385 已购买
1 100 122214 已购买
1 56 115947 已购买
1 98 115241 已购买
1 172 113888 已购买
1 204 112054 已购买
1 1 111923 已购买
1 121 111208 已购买
1 79 105862 已购买
1 210 105778 已购买
1 69 104589 已购买
1 7 102883 已购买
1 168 102712 已购买
1 127 102084 已购买
1 173 101127 已购买
1 195 100192 已购买
1 423 98904
1 96 97488 已购买
1 117 97396 已购买
1 222 96448 已购买
1 258 96068 已购买
1 216 95675 已购买
1 183 94841 已购买
1 22 94821 已购买
1 176 94718 已购买
1 405 94107
1 202 93679 已购买
1 89 93550 已购买
1 234 92128 已购买
1 237 91652 已购买
1 64 90863 已购买
1 28 90754 已购买
1 82 90236 已购买
1 191 89935 已购买
1 151 89691 已购买
1 294 88793
1 318 88684
1 238 87646 已购买
1 186 87575 已购买
1 196 87403已购买
1 12 87106 已购买
1 288 86960
1 97 86856 已购买
1 135 86485 已购买
1 228 85377 已购买
1 144 84186 已购买
1 153 84004 已购买
1 70 83390 已购买
1 132 82411 已购买
1 357 82045
1 568 81287
1 286 81110
1 11 80633 已购买
1 25 80246 已购买
1 161 79930 已购买
1 655 79140
1 265 78983 已购买
1 4 77723 已购买
1 182 77580 已购买
1 143 77255 已购买
1 118 77070 已购买
1 95 76855 已购买
1 385 76753
。。。。。。(省略,太多了)
对比上一篇的数据,对比用户1,推荐10条
1 423 98904
1 405 94107
1 294 88793
1 318 88684
1 288 86960
1 357 82045
1 568 81287
1 286 81110
1 655 79140
1 385 76753
不过mapreduce计算更为准确!
欢迎指正!
mapreduce实现ItemCF——基于物品的协同过滤相关推荐
- [推荐算法]ItemCF,基于物品的协同过滤算法
[推荐算法]ItemCF,基于物品的协同过滤算法 标签: ItemCF基于用户的协同过滤算法 2015-03-09 15:11 4144人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: ...
- ItemCF,基于物品的协同过滤算法
转载自 ItemCF,基于物品的协同过滤算法 ItemCF:Item Collaboration Filter,基于物品的协同过滤 算法核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品. 比 ...
- 基于物品的协同过滤ItemCF的mapreduce实现
文章的UML图比较好看..... 原文链接:www.cnblogs.com/anny-1980/articles/3519555.html 基于物品的协同过滤ItemCF 数据集字段: 1. Use ...
- Mahout分步式程序开发 基于物品的协同过滤ItemCF
Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...
- 推荐算法 itemcf java_推荐系统之基于物品的协同过滤算法(ItemCF)
推荐系统之基于物品的协同过滤算法(ItemCF) 发布时间:2018-03-04 16:55, 浏览次数:1778 , 标签: ItemCF 推荐系统之基于物品的协同过滤算法(ItemCF) 前端时间 ...
- 推荐系统实践(二)----基于物品的协同过滤算法(ItemCF)
上一篇博客我简单讲了一下基于用户的协同过滤算法,这里我们一起来学习一下另一种:基于物品的协同过滤算法.基于物品的协同过滤算法是目前业界应用最多的算法,亚马逊.Netflix.Hulu.YouTub ...
- 基于物品的协同过滤算法ItemCF
基于物品的协同过滤算法ItemCF 基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐.简单来讲就是:给用户推荐和他之前喜欢的物品相似的物 ...
- Hadoop案例之基于物品的协同过滤算法ItemCF
Hadoop案例之基于物品的协同过滤算法ItemCF 转载自:http://blog.csdn.net/qq1010885678/article/details/50751607?locationNu ...
- 使用Spark DataFrame实现基于物品的协同过滤算法(ItemCF)
简书不支持Markdown Math语法,请移步https://glassywing.github.io/2018/04/10/spark-itemcf/ 简介 当前spark支持的协同过滤算法只有A ...
最新文章
- 生物识别包含人脸识别门禁之外还包含哪种识别种类
- Symfony3实现刷新登录时间
- bind9 配置说明
- 通俗解释协方差与相关系数
- php nginx日志分析,如何通过NGINX的log日志来分析网站的访问情况,试试这些命令...
- ubuntu 绑定网卡
- Java实现文件复制
- 技术改变生活,统一通信走向深度融合
- android dialog动画_Android超级酷炫实用的UI框架
- 我需要具备的知识和能力总结
- 解题报告 poj 1087
- 【转】20个Java 代码生成器
- spf打包解包_SPF’校园管理项目实训-1
- 算法设计与分析 第一章 基础知识作业1
- python多线程爬取qq好友空间的留言
- Arctime——可视化字幕编辑器,解放你的双手
- 刷题时遇到的经典解法(实时更新)
- unable to find valid certification path to requested target的异常解决办法
- MySql数据的完整性
- ckplayer播放线上视频问题
热门文章
- MOOC《Python网络爬虫和信息提取》(第11次)网络爬虫之框架(第4周)
- 天蓝-skyblue迁移到博客园
- Linux IGMP SNOOPING 学习笔记 之三 igmp snooping实现需求分析
- PBX、FXO、FXS等通信相关知识
- C++数据结构之单链表(henu.hjy)
- 声纳---2篇SMC 一篇Trans Cybernitics --河海大学 --- 霍冠英
- 电子标签的制作及封装 射频标签通信协议简介 射频标签内存信息的写入方式
- 使用javax.imageio.ImageIO读取JPEG图片时出现异常java.awt.color.CMMException: General CMM error517
- 【深度学习】详解Faster-R-CNN
- 驾考科目一:道路交通安全法律、法规和规章