您的位置:首页 > 其它

MapReduce简单实现基于物品的协同过滤算法

2014-02-26 10:52 344 查看
现在进到各种电商网站都会在页面给你推荐一些物品,那么这些推荐的物品是怎么得出来的呢?这里介绍一种协同过滤算法:基于物品的协同过滤算法。简单的说,就是给用户推荐他之前买过且平分高的相似的物品。该算法的主要思想是:

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. 建立物品的同现矩阵
101102103104105106
101744434
102443432
103444323
104443542
105332442
106423224
2. 建立用户的评分矩阵

这里以用户4为例:
u4
1012
1025
1030
1045
1054
1060
3. 矩阵相乘

101102103104105106u4
1017444341012
1024434321025
103444323X1030
1044435421045
1053324421054
1064232241060
结果为:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: