MapReduce简单实现基于物品的协同过滤算法
2014-02-26 10:52
344 查看
现在进到各种电商网站都会在页面给你推荐一些物品,那么这些推荐的物品是怎么得出来的呢?这里介绍一种协同过滤算法:基于物品的协同过滤算法。简单的说,就是给用户推荐他之前买过且平分高的相似的物品。该算法的主要思想是:
1. 建立物品的同现矩阵
就是说按用户分组,找出每2个物品在多少用户中同时出现的次数。
2. 建立用户对物品的评分矩阵
每个用户对每个物品的评分
3. 2个矩阵相乘,计算结果。
下面以一个简单的例子进行实际开发。
一份用户对商品的评价数据:
第一个字段为用户id,第二个字段为商品id,第三个字段为评分。
1. 建立物品的同现矩阵
2. 建立用户的评分矩阵
这里以用户4为例:
3. 矩阵相乘
结果为:
1. 建立物品的同现矩阵
就是说按用户分组,找出每2个物品在多少用户中同时出现的次数。
2. 建立用户对物品的评分矩阵
每个用户对每个物品的评分
3. 2个矩阵相乘,计算结果。
下面以一个简单的例子进行实际开发。
一份用户对商品的评价数据:
1 101 4 1 106 3 2 105 3 2 101 1 2 106 2 2 103 2 2 104 5 2 102 2 3 101 2 3 106 5 3 103 4 4 101 2 4 102 5 4 105 4 4 104 5 5 105 4 5 104 5 6 102 1 6 104 1 6 101 4 6 103 1 7 104 4 7 101 1 7 102 2 7 105 5 7 103 2 7 106 1 8 101 2
第一个字段为用户id,第二个字段为商品id,第三个字段为评分。
1. 建立物品的同现矩阵
101 | 102 | 103 | 104 | 105 | 106 | |
101 | 7 | 4 | 4 | 4 | 3 | 4 |
102 | 4 | 4 | 3 | 4 | 3 | 2 |
103 | 4 | 4 | 4 | 3 | 2 | 3 |
104 | 4 | 4 | 3 | 5 | 4 | 2 |
105 | 3 | 3 | 2 | 4 | 4 | 2 |
106 | 4 | 2 | 3 | 2 | 2 | 4 |
这里以用户4为例:
u4 | |
101 | 2 |
102 | 5 |
103 | 0 |
104 | 5 |
105 | 4 |
106 | 0 |
101 | 102 | 103 | 104 | 105 | 106 | u4 | |||
101 | 7 | 4 | 4 | 4 | 3 | 4 | 101 | 2 | |
102 | 4 | 4 | 3 | 4 | 3 | 2 | 102 | 5 | |
103 | 4 | 4 | 4 | 3 | 2 | 3 | X | 103 | 0 |
104 | 4 | 4 | 3 | 5 | 4 | 2 | 104 | 5 | |
105 | 3 | 3 | 2 | 4 | 4 | 2 | 105 | 4 | |
106 | 4 | 2 | 3 | 2 | 2 | 4 | 106 | 0 |
相关文章推荐
- MapReduce:基于物品的协同过滤算法的MapReduce实现
- 用Hadoop流实现mapreduce版推荐系统基于物品的协同过滤算法
- 基于Hadoop的MapReduce框架实现最简单PageRank模型
- 基于物品的协同过滤ItemCF的mapreduce实现
- 推荐算法--基于物品协同过滤算法实现(python: Item-CF)
- 基于物品的协同过滤算法和SlopeOne的python实现
- ItemCF_基于物品的协同过滤_MapReduceJava代码实现思路
- Hadoop 2.6 使用MapReduce实现基于物品的推荐系统
- mapreduce实现ItemCF——基于物品的协同过滤
- 基于物品的协同过滤ItemCF的mapreduce实现
- python基于物品协同过滤算法实现代码
- 基于物品的协同过滤算法itemCF原理及python代码实现
- 基于物品的协同过滤算法:理论说明,代码实现及应用
- 基于用户的协同过滤算法和基于物品的协同过滤算法之java实现
- 基于物品的协同过滤算法和SlopeOne的python实现
- 使用mapreduce并行化基于物品的协同过滤算法
- 《推荐系统实践》——基于物品的协同过滤算法(代码实现)
- 基于物品的协同过滤算法:理论说明,代码实现及应用
- 基于jsp+servlet实现的简单博客系统实例(附源码)
- 基于Java关于链表的简单实现