一、介绍

商品推荐是针对用户面对海量的商品信息而不知从何下手的一种解决方案,它可以根据用户的喜好,年龄,点击量,购买量以及各种购买行为来为用户推荐合适的商品。在本项目中采用的是基于用户的协同过滤的推荐算法来实现商品的推荐并在前台页面进行展示,我将会使用余弦相似度的度量方法来计算用户与用户之间相似性,最终将相似度较高的用户浏览的商品推荐给用户。

协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering)。简单的说就是:人以类聚,物以群分。

皮尔森(pearson)相关系数公式

公式定义为: 两个连续变量(X,Y)的pearson相关性系数(Px,y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX,σY)。系数的取值总是在-1.0到1.0之间,接近0的变量被成为无相关性,接近1或者-1被称为具有强相关性。 通常情况下通过以下取值范围判断变量的相关强度: 相关系数 0.8-1.0 极强相关 0.6-0.8 强相关 0.4-0.6 中等程度相关 0.2-0.4 弱相关 0.0-0.2 极弱相关或无相关

二、推荐流程

三、余弦相似度的原理

在三角形中,cos30°=二分之根三,cos60°=1/2。很明显,cos30°相比于cos60°更接近于 1,可以看出角度越接近于 0°,对应的余弦值越接近于 1,构成这个角度的两条边也就越接近于重合,也就可以认为这两条边越相似。

在二维的平面向量中,两个向量之间夹角的余弦值公式为:

假设两个向量a,b的坐标分别为(x1,y1)、(x2,y2),所以最终可以化简为:

注:其中的x和y是两个不同的维度,在向量直角坐标系中可以认为是距x和y轴的距离,但是在实际的应用中,可以是把它理解为一个物体的任何一个可以衡量它与其他物体不同之处的属性…咳咳,还是说人话吧,在商品推荐中可以把向量 a 和向量 b 理解为两个不同的用户,把 (x1,y1) 理解为 a 用户对 x 商品的点击次数和对 y 商品的点击次数,再把对应的值带入上述公式即可求出两个用户之间的相似性,越接近于 1 ,说明两个用户的浏览行为越相似,就可以把一个用户浏览过的商品推荐给另一个没有浏览过该商品的用户,从而完成商品推荐。

设向量 A = (A1,A2,A3,…,An), B = (B1,B2,B3,…,Bn),推广到多维,公式为:

其中的 A1,A2,A3…就可以理解为该用户对不同的商品的点击量。

四、采用的技术

基于这个开源项目二开:GitHub - GoogleLLP/SuperMarket: 设计精良的网上商城系统,包括前端、后端、数据库、负载均衡、数据库缓存、分库分表、读写分离、全文检索、消息队列等,使用SpringCloud框架,基于Java开发。该项目可部署到服务器上,不断完善中……

网上商城系统,包括前端、后端、数据库、负载均衡、数据库缓存、分库分表、读写分离、全文检索、消息队列等,使用SpringCloud框架,基于Java开发。

3.1 开发环境

3.2 后台框架

springcloud、elasticsearch、redis、RabbitMQ、nginx

用户微服务(com.supermarket.user)

商品微服务(com.supermarket.product)

公共资源微服务(com.supermarket.common)

zuul网关(com.supermarket.gateway)

图片微服务(com.supermarket.image)

购物车微服务(com.supermarket.cart)

订单微服务(com.supermarket.order)

检索微服务(com.supermarket.search)

秒杀微服务(com.supermarket.instantbuy)

包结构

运行截图

SuperMarket: 基于协同过滤算法实现商品推荐功能的购物电商系统 分布式微服务网上商城

基于协同过滤算法的商品推荐购物电商系统相关推荐

  1. 基于协同过滤算法SSM个性化推荐购物商城设计

    程序开发软件:Eclipse或Idea   数据库:mysql 此网站是一个全品类的购物商城系统,然后在传统的购物商城的基础上面加入了协同过滤算法,包括了基于用户的协同过滤算法和基于商品的协同过滤算法 ...

  2. 基于协同过滤算法的电影推荐系统设计(二) - ALS算法详解

    0 系列文章目录 0.1 基于协同过滤算法的电影推荐系统设计(一) - 项目简介 0.2 基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍 ALS是alternating least squ ...

  3. 毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介

    由于本人今年毕业,为完成毕设特地想着实现一个简单的推荐系统设计,思来想去,小电影不就是很好的切入点嘛! 于是诞生该项目,将会一步步带着大家实现一个自己的电影推荐系统. 1 研究目标 从应用场景来看,基 ...

  4. 基于协同过滤 算法推荐系统图书推荐猜你喜欢

    基于协同过滤 算法推荐系统图书推荐 一 项目介绍 该项目有前台,有后台,前台主要是首页轮播图,最新发布图书,热门图书,图书总量,图书收藏量,用户注册量,图书分类,图书搜索,图书分页列表,图书详情,图书 ...

  5. 基于协同过滤算法的书籍推荐 毕业设计-附源码101555

    摘  要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准 ...

  6. (附源码)python+mysql+基于协同过滤算法的书籍推荐 毕业设计101555

    摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确 ...

  7. 推荐系统(一)基于协同过滤算法开发离线推荐

    什么是离线推荐 所谓的离线推荐其实就是根据用户产生的行为日志,后台设定一个离线统计算法和离线推荐算法的任务来对这些行为日志进行周期性的统计,统计过后的结果数据为前台或者实时分析提供数据的支撑.离线推荐 ...

  8. 基于协同过滤算法的民宿客栈订房系统

    技术栈:SSM+协同过滤算法推荐+MYSQL+TOMCAT+JSP   私信 协同过滤算法实现过程 public String execute() throws Exception {//遍历所有客房 ...

  9. springboot java基于协同过滤算法商品推荐系统vue

    互时动态更新该页面的 Web 应用 springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生 ...

最新文章

  1. 【收藏】Oracle存储过程读写文件
  2. [html] 如何通过表单下载文件?
  3. ​全网首发,TensorFlow 2.0 中文视频教程来啦
  4. jquery学习之1.10-小练习-选中下拉框内容并显示
  5. 基于JAVA+SpringBoot+Mybatis+MYSQL的疫情信息管理系统
  6. 跟小静读CLR via C#(15)--String,熟悉而又陌生
  7. 近期面试了三个人之感想
  8. 基于阶梯式Tent混沌和模拟退火的樽海鞘群算法
  9. vue3.0 studay(一) 汇总
  10. axios 注册拦截器 cdn引用_提高传输速度,选p2p加速还是cdn加速呢?
  11. 关于python的各个常用软件——python、pycharm、anaconda
  12. 小程序(之音乐播放器实现思路)
  13. Symantec Ghost Solution Suite简介
  14. spring beancopier Cannot invoke “Object.getClass()“ because “cause“ is null异常处理
  15. 使用JQuery快速高效制作网页交互特效第九章所有上机
  16. es报错:request contains unrecognized parameter [ignore_throttled]
  17. 如何使用Spring Boot促进java开发?高级java架构师为您详解!
  18. PMP 考点 第十三章 项目相关方管理
  19. scrapy+crawlspider+增量式爬取电影
  20. 数据库-多步操作产生错误,请检查每一步的状态值

热门文章

  1. Reverse Engineering the NC ECU (revisited) -- SH7508
  2. 领导者都具备的四大思维能力
  3. SSS1629USB麦克风方案设计原理
  4. 关于在安卓M上无法申请 SYSTEM_ALERT_WINDOW 权限的解决方案
  5. android的usb热插拔,Android M能让外部存储变成内部存储 支持U盘热插拔
  6. 【笔记】autoCAD无法显示文字解决方案
  7. APP开发者如何来实现视频聊天室功能
  8. SFB 项目经验-10-Polycom CX700-不停弹窗口要输入用户名和密码
  9. 32位服务器系统安装教程,服务器系统数据库安装教程
  10. 5W无线充发射IC芯片方案XPM7105、XPM7305 无线充SOC芯片