# 商品推荐系统(product-recommendation-system)
## 项目介绍
> 商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品。在本项目中采用的是基于用户的协同过滤的推荐算法来实现商品的推荐并在前台页面进行展示,我将会使用余弦相似度的度量方法来计算用户与用户之间相似性,最终将相似度较高的用户浏览的商品推荐给用户。<a href="https://github.com/MrQuJL/product-recommendation-system/tree/master/shopping-recommendate" target="blank">更多关于机器学习推荐算法的内容详见这里</a>
## 项目目标
* **商品推荐**:根据不同用户之间的相似性来推荐给用户合适的商品
* 一级类目管理:管理一级类目的相关功能
* 二级类目管理:管理二级类目的相关功能
* 商品管理:对商品进行上架,下架,修改信息
* 管理员管理:管理管理员,用于商城后台的管理平台页面
* 商城会员管理:管理商城会员,对商城页面的会员进行管理
* 商城会员登录及注册:实现商城用户的登录功能以及注册功能
## 项目所采用的技术
### 开发环境
* 操作系统:Windows8.1
* IDE:eclipse
* Java版本:1.8
* 数据库:mysql5.6.36
* 服务器:tomcat8
* 项目的构建工具:Maven
### 后台框架
* spring-4.2.1 轻量级的IOC和AOP的容器框架
* springMVC-4.2.1 表示层框架,负责匹配请求,处理请求,返回视图
* mybatis-3.3.1 建立与数据库的会话
* druid-1.1.16 为监控而生的数据库连接池
## 商品推荐流程
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/商品推荐流程.png)
## 界面
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/shopping.png)
## 项目阶段性成果
### 用户相似度计算功能完成(2018-3-26 20:51)
以下为通过余弦相似度公式计算得出的用户与用户之间的相似度:
具体的代码实现见<a href="https://github.com/MrQuJL/product-recommendation-system/blob/master/shopping/src/main/java/com/lyu/shopping/recommendate/util/RecommendUtils.java" target="_blank">RecommendUtils.java</a>
```
1 2 0.999489144283392
1 3 0.951009468591049
1 4 0.6101699194694563
2 3 0.9514955455298099
2 4 0.6104817875805268
3 4 0.6408097907695536
```
### 余弦相似度的原理
1. 在三角形中,cos30°=二分之根三,cos60°=1/2。很明显,cos30°相比于cos60°更接近于 1,可以看出角度越接近于 0°,对应的余弦值越接近于 1,构成这个角度的两条边也就越接近于重合,也就可以认为这两条边越相似。
2. 在二维的平面向量中,两个向量之间夹角的余弦值公式为:<br/>
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/cos1.jpg)<br/>
假设两个向量a,b的坐标分别为(x1,y1)、(x2,y2),所以最终可以化简为:<br/>
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/cos2.jpg)<br/>
**注:其中的x和y是两个不同的维度,在向量直角坐标系中可以认为是距x和y轴的距离,但是在实际的应用中,可以是把它理解为一个物体的任何一个可以衡量它与其他物体不同之处的属性...咳咳,还是说人话吧,在商品推荐中可以把向量 a 和向量 b 理解为两个不同的用户,把 (x1,y1) 理解为 a 用户对 x 商品的点击次数和对 y 商品的点击次数,再把对应的值带入上述公式即可求出两个用户之间的相似性,越接近于 1 ,说明两个用户的浏览行为越相似,就可以把一个用户浏览过的商品推荐给另一个没有浏览过该商品的用户,从而完成商品推荐。**
3. 设向量 A = (A1,A2,A3,...,An), B = (B1,B2,B3,...,Bn),推广到多维,公式为:<br/>
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/cos3.jpg)<br/>
其中的 A1,A2,A3...就可以理解为该用户对不同的商品的点击量。
### 计算出要推荐给用户的二级类目(2018-3-30 22:48)
通过上一阶段对用户相似度之间的求解,可以获得与某个用户最相似的前N个用户,(假设需要被推荐商品的用户为X)然后在这N个用户的浏览记录中查找X没有浏览的类目,但是这N个用户浏览的二级类目的类目的id,作为推荐给用户的二级类目id<br/>
具体的代码实现见<a href="https://github.com/MrQuJL/product-recommendation-system/blob/master/shopping/src/main/java/com/lyu/shopping/recommendate/util/RecommendUtils.java" target="_blank">RecommendUtils.java</a><br/>
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/recommendCategory2.png)<br/>
### 完成对用户的商品推荐(2018-4-4 21:33)
在上一个阶段确定了要推荐给用户的二级类目之后,找出每个类目下点击量最高的商品推荐给用户。<br/>
直观感受一下:<br/>
![image](https://github.com/MrQuJL/online-shop/raw/master/shopping-imgs/recommendateProduct.png)<br/>
没有合适的资源?快使用搜索试试~ 我知道了~
基于用户的协同过滤算法实现的商品推荐系统
共260个文件
java:63个
png:35个
txt:28个
需积分: 5 0 下载量 27 浏览量
2024-05-16
10:30:49
上传
评论
收藏 3.29MB ZIP 举报
温馨提示
基于用户的协同过滤算法实现的商品推荐系统 商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品。在本项目中采用的是基于用户的协同过滤的推荐算法来实现商品的推荐并在前台页面进行展示,我将会使用余弦相似度的度量方法来计算用户与用户之间相似性,最终将相似度较高的用户浏览的商品推荐给用户. 项目目标 商品推荐:根据不同用户之间的相似性来推荐给用户合适的商品 一级类目管理:管理一级类目的相关功能 二级类目管理:管理二级类目的相关功能 商品管理:对商品进行上架,下架,修改信息 管理员管理:管理管理员,用于商城后台的管理平台页面 商城会员管理:管理商城会员,对商城页面的会员进行管理 商城会员登录及注册:实现商城用户的登录功能以及注册功能 项目所采用的技术 开发环境 操作系统:Windows8.1 IDE:eclipse Java版本:1.8 数据库:mysql5.6.36 服务器:tomcat8 项目的构建工具:Maven 后台框架 spring-4.2.1 轻量级的IOC和AOP的容器框架 springM
资源推荐
资源详情
资源评论
收起资源包目录
基于用户的协同过滤算法实现的商品推荐系统 (260个子文件)
.classpath 1KB
org.eclipse.wst.common.component 826B
org.eclipse.wst.jsdt.ui.superType.container 49B
ace.min.css 311KB
bootstrap.min.css 94KB
ace-rtl.min.css 36KB
style.css 35KB
product.css 30KB
font-awesome.min.css 27KB
ace-skins.min.css 26KB
font-awesome.min.css 22KB
common.css 19KB
select2.min.css 15KB
layer.css 13KB
icheck.css 12KB
webuploader.css 11KB
index.css 9KB
codemirror.css 8KB
zTreeStyle.css 6KB
laydate.css 6KB
fileinput.min.css 6KB
default.css 5KB
laydate.css 3KB
laydate.css 3KB
laydate.css 3KB
layer.ext.css 3KB
register.css 2KB
slider.css 2KB
login.css 1KB
fontawesome-webfont.eot 69KB
fontawesome-webfont.eot 69KB
login_bgx.gif 38KB
common.gif 14KB
loading-0.gif 6KB
loading-2.gif 2KB
register.gif 933B
login.gif 847B
loading-1.gif 701B
.gitignore 9B
IndexController.java 12KB
RecommendUtils.java 12KB
ProductController.java 11KB
RecommendateTest.java 10KB
Category1Controller.java 9KB
Category2Controller.java 8KB
MemberController.java 7KB
AdminController.java 7KB
ProductServiceImpl.java 7KB
MemberServiceImpl.java 6KB
AdminServiceImpl.java 6KB
Category1ServiceImpl.java 6KB
EncryptUtils.java 5KB
Category2ServiceImpl.java 5KB
Category1ServiceTest.java 4KB
ProductServiceTest.java 4KB
EncryptTest.java 3KB
Product.java 3KB
Category1Service.java 3KB
LoginAdminController.java 3KB
Member.java 3KB
Admin.java 3KB
MemberService.java 3KB
UserActiveMapperTest.java 3KB
RegistMemberController.java 2KB
ProductService.java 2KB
Category1Mapper.java 2KB
Category2Mapper.java 2KB
Category2Service.java 2KB
LoginMemberController.java 2KB
CarController.java 2KB
AdminService.java 2KB
AdminServiceTest.java 2KB
PageUtils.java 2KB
CategoryListener.java 2KB
UserActiveServiceImpl.java 2KB
Category1.java 2KB
LoginAdminInterceptor.java 2KB
Category2.java 2KB
Cart.java 2KB
ProductMapper.java 2KB
UserSimilarityServiceImpl.java 2KB
MemberMapper.java 2KB
AdminMapper.java 2KB
UserActiveServiceTest.java 2KB
UserActiveMapper.java 1KB
UserSimilarityService.java 1KB
UserSimilarityMapper.java 1KB
CartItem.java 1KB
UserSimilarityDTO.java 1KB
ProductPageListener.java 1KB
ProductMapperTest.java 959B
ProductDTO.java 935B
LogoutAdminController.java 917B
UserActiveDTO.java 906B
UserActiveService.java 788B
PageParam.java 779B
Category1DTO.java 737B
TreeNode.java 726B
PageController.java 607B
Category2DTO.java 589B
共 260 条
- 1
- 2
- 3
资源评论
程序媛小y
- 粉丝: 5615
- 资源: 187
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Transformer 模型主要由以下几个部分组成.docx
- 技嘉Z87X-HD3-f4-nvme
- 数据挖掘-04-外键SQL语句的编写.ev4.rar
- chrome安装包linux版本
- 基于卷积神经网络的农作物病虫害图像识别(.html
- 易舟云:让中小企业财务管理变得触手可及.docx
- html5-event-calendar-open-source-php.20231120.zip
- Captura-v9.0.0.rar (0积分下载 windows 免费录屏工具,制作GIF动图)
- html5-event-calendar-open-source-asp.net-core.20231120.zip
- image_download_1718113345098.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功