目录
一 绪论 1
1.1 编写目的 1
1.2 背景及意义 1
1.3 开发及运行环境 2
二 需求分析 3
2.1 系统概述 3
2.3 系统功能需求 4
2.3.1 收集原始数据 4
2.3.2 计算物品相似度矩阵 4
2.3.3 计算用户购买向量 5
2.3.4 计算推荐向量并去重和排序 5
2.3.4 数据入库 5
2.3.5 作业控制 5
2.3.6商品推荐功能 6
2.4 系统非功能需求 6
三 概要设计 7
3.1系统架构设计 7
3.2系统层次架构设计 8
3.3系统功能模块设计 9
3.3.1 计算物品相似度矩阵 10
3.3.2推荐矩阵(相似度矩阵*向量) 11
3.3.3对推荐向量进行处理 12
3.3.4数据入库 12
3.4系统数据库设计 12
四 详细设计 14
4.1推荐模块程序流程图 14
4.2系统架构图 15
4.3数据预处理层 15
4.4推荐结果生成层 16
4.5推荐系统流程图 17
五 系统实现 17
5.1计算用户购买商品的列表 17
5.2计算商品的共现关系 18
5.3计算用户的购买向量 18
5.4推荐结果 19
5.5数据去重 19
5.6推荐结果入库 20
5.7构建作业流对象 22
六 系统测试 23
6.1计算用户购买商品的列表 23
6.2计算商品的共现次数(共现矩阵) 23
6.3计算用户的购买向量 23
6.4推荐结果 24
6.5数据去重 25
6.6推荐结果入库 25
6.7 web系统推荐商品实现 26
小结 26
参考文献 27
二 需求分析
2.1 系统概述
商品推荐系统是对用户的历史行为进行挖掘,对用户兴趣信息进行建模,并对用户未来行为进行预测,从而建立用户和内容的关系,满足用户对商品的推荐需求的一种智能系统。通过对主要的推荐算法进行比较分析,模拟实现了基于用户行为的智能推荐系统,提高了推荐算法的有效性。商品推荐系统是为了更精准的为用户推荐他们想要的内容,如果一个用户在浏览商品信息的时候,通过对用户数据的记录,和已经存在的其他的用户记录进行分析,从而为用户推荐相应的数据。本次毕业设计是基于Hadoop的商品推荐系统,本此课设通过对用户行为的研究,发现用户购买的偏好波动幅度偏大,如何充分利用这一特征是提高推荐系统精准度的关键。
用户行为数据的处理。商品推荐系统用户、商品行为主要是用户的购买行为。
购买行为包含了丰富的用户购买商品,如何处理这些购买商品是推荐系统实现的关键。
系统必须具有高扩展性。网上购物每时每刻都会有新的数据产生,都会执行新的购物行为,系统的扩展性变得尤为关键。
推荐系统的推荐质量。推荐系统的最终目的是推荐,所以推荐质量是整个系统设计的最终目的。好的推荐系统需要兼顾系统的精准度、覆盖率以及新颖度。

2.3 系统功能需求
基于Hadoop的商品推荐引擎大致可以分为5部分,分别是:计算用户的购买向量、计算物品的相似度矩阵、计算推荐度及相关处理、数据导入数据库和对于整个项目的全部作业控制。
2.3.1 收集原始数据
推荐系统是基于用户、商品行为数据来进行推荐的,没有用户商品数据的推荐系统是无法进行推荐的。rawdata文件:该文件是收集用户对物品的偏好,形成“用户 物品 偏好”的数据集。数据格式:用户编号 物品编号 偏好值。

package com.cxx.project.grms.step1;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;import java.io.IOException;/*** @Author: cxx* 用户购买列表* @Date: 2018/4/9 11:46* 原始数据***************** 10001 20001   1* 10001    20002   1* 计算结果***************** 10001  20001,20005,20006,20007,20002* 10002    20006,20003,20004*/public class UserByList extends Configured implements Tool{//mapperpublic static class UserByListMapperextends Mapper<LongWritable,Text,Text,Text>{@Overrideprotected void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {String[] strs = value.toString().split("\t");context.write(new Text(strs[0].trim()),new Text(strs[1].trim()));}}//reducepublic static class UserByListReduce extends Reducer<Text,Text,Text,Text> {@Overrideprotected void reduce(Text key,Iterable<Text> values,Context context) throws IOException, InterruptedException {StringBuilder sb = new StringBuilder();for (Text value:values){sb.append(value.toString()).append(",");}String result = sb.substring(0,sb.length()-1);context.write(key,new Text(result));}}@Overridepublic int run(String[] strings) throws Exception {Configuration conf = getConf();Path input=new Path("/grms/rawdata/matrix.txt");Path output=new Path("/grms/rawdata/222");Job job = Job.getInstance(conf,this.getClass().getSimpleName());job.setJarByClass(this.getClass());job.setMapperClass(UserByListMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(Text.class);job.setInputFormatClass(TextInputFormat.class);TextInputFormat.addInputPath(job,input);job.setReducerClass(UserByListReduce.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);job.setOutputFormatClass(TextOutputFormat.class);TextOutputFormat.setOutputPath(job,output);return job.waitForCompletion(true)?0:1;}public static void main(String[] args) throws Exception {System.exit(ToolRunner.run(new UserByList(),args));}
}



















基于Hadoop的用户购买行为的商品推荐系统相关推荐

  1. 基于Apriori算法的购物网站商品推荐系统

    基于Apriori算法的购物网站商品推荐系统 目 录 一. 算法内容 3 Step 1 收集用户偏好 3 Step 2 对数据进行预处理 3 Step 3 计算相似度 4 Step 4 找邻居 5 S ...

  2. 基于hadoop的商品推荐系统_[零基础入门推荐系统(1)]基于用户和基于物品的协同过滤方法(python代码实现)...

    1. 前言: 为什么会有该系列? 最近,打算写<零基础入门推荐系统>系列,为了系统地介绍推荐系统知识,以及加强基础的实践能力. 该系列将结合一些书籍,比如项亮的<推荐系统实践> ...

  3. 基于hadoop的商品推荐系统_【论文笔记】基于矩阵分解的推荐系统

    本文是对经典论文的阅读笔记,大部分为论文的中文翻译内容(笔者英语水平也就六级飘过的水准,不喜勿喷) 论文标题:Matrix factorization techniques for recommend ...

  4. 推荐系统-通过数据挖掘算法协同过滤讨论基于内容和用户的区别

    概念 个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品. 为什么要个性化推荐? 商品个数和种类快速增长,顾客需要花费大量的时间才能找到自己想买的商品 浏览大量无关的信息和产品 ...

  5. C/C++基于朋友圈的商品推荐系统

    C/C++基于朋友圈的商品推荐系统 基于朋友圈的商品推荐 [课题内容和要求] 模拟基于朋友圈的商品推荐,可以用于任何电商,如淘宝.京东等. 假设目前用户有100人,每人均有自己的朋友圈,且购买过若干商 ...

  6. Django基于用户画像的电影推荐系统源码(项目源代码)

    一.项目介绍 公众号:yk 坤帝 获取全部源代码 本系统是以Django作为基础框架,采用MTV模式,数据库使用MongoDB.MySQL和Redis,以从豆瓣平台爬取的电影数据作为基础数据源,主要基 ...

  7. 基于springboot+vue个性化商城商品推荐系统 前后端分离 协同过滤 全套视频教程

    个性化商城商品推荐系统(用户,多商户,管理员,SpringBoot,SSM,Maven,Vue,Layui) 本系统包含买家,卖家,后台管理员三种角色的用户 买家用户的功能包含: 登录,退出,修改密码 ...

  8. 基于用户画像的电影推荐系统论文

    摘要 在当今互联网时代,用户体验已经成为衡量产品质量的重要标准之一.为了提高用户体验,本文提出了一种基于用户画像的电影推荐系统.该系统通过对用户行为和偏好的分析,为用户推荐个性化电影列表.本文采用Py ...

  9. 基于hadoop实现的关联规则挖掘的图书数据分析推荐系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763735 资源下载地址:https://download.csdn.net/downl ...

最新文章

  1. c 语言 按位与或非运算符,C++中的按位与、按位与或|、按位异或^运算符详解
  2. Android基础总结+SQlite数据库【申明:来源于网络】
  3. PYTHON调用JENKINS的API来进行CI
  4. DES加密解密算法Java实现
  5. Windows驱动开发学习笔记(三)—— 内核空间内核模块
  6. Spark RDD使用详解4--Key-Value型Transformation算子
  7. arcgis怎么做poi_跟着闫磊大神学ArcGIS,事半功倍
  8. java定义一个方法,向控制台输出一个整数的阶乘
  9. mysql 5.5 编译安装教程,Centos6下mysql 5.5.* 编译安装步骤详解
  10. 【对讲机的那点事】无线电对讲系统在隧道中的应用
  11. 思维导图的使用场合有哪些?怎么画思维导图
  12. WebService 调用接口报错(0)null
  13. 中国微型电动汽车市场趋势报告、技术动态创新及市场预测
  14. 详解二维数组定义方式
  15. 异形外星人那么“阔怕”,神秘外星信号该不该回复?
  16. WinRAR 4.01 key!注册文件 注册码
  17. Keil MDK 编译器 AC5 和 AC6 优化选项重要内容和区别
  18. 计算机内存五个区域,总结:计算机内存的五大区域
  19. 异常:Fatal error loading the DB: Invalid argument. Exiting
  20. c语言24小时制转化12,在C ++中将时间从24小时制转换为12小时制

热门文章

  1. 省队集训Round3 DAY1
  2. 局域网内共享文件可集成Java代码实现——FileZilla Server
  3. html标签table自动增加行,给表格添加行的标签
  4. 标准文档流、脱离文档流及脱离文档流的3种方式
  5. webstorm安装插件失败怎么办?
  6. 使用selenium爬虫抓取数据
  7. 博导如果没时间指导你,那就自学这些公众号
  8. 男人必修的十堂电影课
  9. IT界流传的经典段子,最后一个只有程序员才能看懂
  10. Java面试题总结2(持续更新)