zoukankan      html  css  js  c++  java
  • hadoop实例:电子商务网站商品推荐系统

    荐系统无处不在

    比如:

    购买成功后:购买了该商品的其他用户购买了以下商品

    搜索成功后:您可能感兴趣的以下商品

    主页或广告:您可能感兴趣的以下商品

    如下图,用户A购买物品AC;用户B购买物品ABC;当用户C购买物品A后,根据数据分析发现,购买物品A的用户大多数购买了物品C,所以提醒用户C”购买了该商品的其他用户购买了以下商品:物品C”。 下面我们就模拟实现这个功能

    这里有一堆数据,记录的是用户购物记录;要求用户推荐和他之前喜欢的物品相似的物品。

    item_id,user_id,action,vtime
    i161,u2625,click,2014/9/18 15:03
    i161,u2626,click,2014/9/23 22:40
    i161,u2627,click,2014/9/25 19:09
    i161,u2628,click,2014/9/28 21:35
    i161,u2629,click,2014/9/27 16:33
    i161,u2630,click,2014/9/5 18:45
    i161,u2631,click,2014/9/29 16:57
    i161,u2632,click,2014/9/24 21:58
    i161,u2633,click,2014/9/25 22:41
    i161,u2634,click,2014/9/16 13:30
    i161,u2635,click,2014/9/20 9:23
    i161,u2636,click,2014/9/21 1:00
    i161,u2637,click,2014/9/24 22:51
    i161,u2638,click,2014/9/27 22:40

    解决思路:

    将数据拆分  用户对物品的喜爱度得分矩阵 与  物品的同现矩阵 如下图,矩阵相乘得到的就是推荐商品

    101…107指商品分数   U3指用户评分 

    R指矩阵乘积,如 40=2*(5+3+4+4+2+2+1)

    R最高的代表推荐商品

    需要五次mapReduce处理数据

    第一次mapReduce做的事情?去重复数据;

    第二次mapReduce做的事情?

    按用户分组,计算所有物品出现的组合列表,得到用户对物品的喜爱度得分矩阵

    u13 i160:1,

    u14 i25:1,i223:1,

    u16 i252:1,

    u21 i266:1,

    u24 i64:1,i218:1,i185:1,

    u26 i276:1,i201:1,i348:1,i321:1,i136:1,

    第三次mapReduce做的事情?

    对物品组合列表进行计数,建立物品的同现矩阵

    i100:i100   3

    i100:i105   1

    i100:i106   1

    i100:i109   1

    i100:i114   1

    i100:i124   1

    第四次mapReduce做的事情?

    把同现矩阵和得分矩阵相乘

    u13  i100,3

    u13  i100,2

    u13  i105,1

    u14  i100,3

    u14  i105,1

    第五次mapReduce做的事情?

    把相乘之后的矩阵相加获得结果矩阵

    u13  i100,5

    u13  i105,1

    u14  i100,3

    u14  i105,1

    代码实现如下:

    网址: https://github.com/hzcjd8/hadoop

    hadoop伪分布式安装(单机版) HDFS +Yarn


     

  • 相关阅读:
    chrome提供的功能
    运用Detours库hook API(原理是改写函数的头5个字节)
    markdown实现
    SQL知识整理一:触发器、存储过程、表变量、临时表
    SOCKET网络编程细节问题(4)
    C++内存中的封装、继承、多态(上)
    100个直接可以拿来用的JavaScript实用功能代码片段
    背包问题的动态规划算法
    项目Splash页面的开发与设计
    cocos2d-x 通过socket实现http下载及断点续传的实现
  • 原文地址:https://www.cnblogs.com/hzcjd/p/13681116.html
Copyright © 2011-2022 走看看