售前咨询
技术支持
渠道合作

物品推荐-MRJob-Python数据分析(21)

数据

数据中有3个字段分别使用逗号(,)隔开,如下:

思路

1.将用户购买商品数据进行转化从而变成 <商品购买次数同现矩阵> 和 <商品用户评分矩阵>

注意: 上面的两个矩阵通过 MRjob 转化后是以稀疏矩阵的形式保存的

2.将以上得到的两个稀疏矩阵进行相乘从而获得每个用户每个商品的评分情况

Hadoop矩阵相乘理论可以参考下面链接:

http://p.primeton.com/articles/54ccca6dbe20aa6a9000020f

http://blog.csdn.net/xyilu/article/details/9066973

矩阵相乘数学理论

使用 MRJob 一步步计算

  1. 计算用户评分矩阵

MRJob 计算代码(01_user_goods_score.py)

执行

类似SQL:

  1. 通过 02_user_goods_score_record.data 文件中的数据得到 <商品购买次数同现矩阵>

MRJob 计算代码(01_user_goods_score.py)

执行

  1. 通过分析原始数据(01_user_goods_score.data) 文件中的数据得到 <商品用户评分矩阵(购买过的商品)>

MRJob 计算代码(01_goods_user_score_matrix.py)

执行

  1. 对稀疏矩阵做乘法(03_goods_user_score_matrix.data) X (03_goods_bought_count_matrix.data)

MRJob计算代码(03_user_every_goods_score_matrix.py)

程序说明: 这边矩阵需要先知道参与矩阵运算的商品有哪些 和 参与矩阵运算的用户有哪些,就像程序中的两个变量

goods_ids 和 user_ids 变量也是在计算中会消耗内存的地方

执行

上面的数据就显示出来的 每个用户 对应的每个商品的 评分矩阵,其中按用户评分排序就可以知道需要推荐的商品是哪个了。

 

文章转载来自:ttlsa.com

上一篇:

下一篇:

相关文章