java电影购票推荐算法(含源码,小程序,vue,uniapp)

news/2024/5/19 23:41:12 标签: spring boot, 推荐算法, 源码, 小程序, java

用户协同推荐算法思想

如果你喜欢战狼、长津湖、阿甘正传等电影,另外有个人也喜欢这些电影,而且他还喜欢指环王,则很有可能你也喜欢指环王这个电影。

所以说,当一个用户 A 需要个性化推荐时,可以先找到和他兴趣相似的用户群体 G,然后把 G 喜欢的、并且 A 没有听说过的电影推荐给 A,这就是基于用户的系统过滤算法。

  根据上述基本原理,我们可以将基于用户的协同过滤推荐算法拆分为两个步骤:

1. 找到与目标用户兴趣相似的用户集合

2. 找到这个集合中用户喜欢的、并且目标用户没有听说过的电影推荐给目标用户

1. 发现兴趣相似的用户

      通常用 Jaccard 公式或者余弦相似度计算两个用户之间的相似度。设 N(u) 为用户 u 喜欢的电影集合,N(v) 为用户 v 喜欢的电影集合,那么 u 和 v 的相似度是多少呢:

      Jaccard 公式:

      余弦相似度:

      假设目前共有4个用户: A、B、C、D;共有5个电影:a、b、c、d、e。用户与电影的关系(用户喜欢电影)如下图所示:

      如何一下子计算所有用户之间的相似度呢?为计算方便,通常首先需要建立“电影—用户”的倒排表,如下图所示:

      然后对于每个电影,喜欢他的用户,两两之间相同电影加1。例如喜欢电影a 的用户有 A 和 B,那么在矩阵中他们两两加1。如下图所示:

      计算用户两两之间的相似度,上面的矩阵仅仅代表的是公式的分子部分。以余弦相似度为例,对上图进行进一步计算:

      到此,计算用户相似度就大功告成,可以很直观的找到与目标用户兴趣较相似的用户。

2. 推荐电影

      首先需要从矩阵中找出与目标用户 u 最相似的 K 个用户,用集合 S(u, K) 表示,将 S 中用户喜欢的电影全部提取出来,并去除 u 已经喜欢的物品。对于每个候选物品 i ,用户 u 对它感兴趣的程度用如下公式计算:

      其中 rvi 表示用户 v 对 i 的喜欢程度,在本例中都是为 1,在一些需要用户给予评分的推荐系统中,则要代入用户评分。

      举个例子,假设我们要给 A 推荐电影,选取 K = 3 个相似用户,相似用户则是:B、C、D,那么他们喜欢过并且 A 没有喜欢过的电影有:c、e,那么分别计算 p(A, c) 和 p(A, e):

 

       看样子用户 A 对 c 和 e 的喜欢程度可能是一样的,在真实的推荐系统中,只要按得分排序,取前几个电影就可以了

springboot+html电影购票选座版本源码

springboot+vue(elementui)电影购票选座版本源码

 

springboot+uniapp电影购票选座版本源码

springboot+小程序版本源码

springboot+安卓版本源码

springcloud和上面任意版本组合


http://www.niftyadmin.cn/n/780761.html

相关文章

基于java springboot的生鲜配送微信小程序源码

近几年线下生鲜超市得到迅速发展,加上互联网的冲击,很多生鲜超市向上转型,依托于互联网技术来开发线上配送业务,主要功能我列了个框架,近期到了毕业季,所以选择了该题目弄了个生鲜配送小程序,后…

基于微信小程序的学习网站源码

开发环境及工具: 大于Jdk1.8,大于mysql5.5,idea(eclipse),小程序开发工具 技术说明: Springboot mybatis vue.js mysql 小程序 代码注释齐全,没有多余代码,适合学习(…

java时间管理番茄时钟小程序源码

开发环境及工具: 大于Jdk1.8,大于mysql5.5,idea(eclipse),微信小程序开发工具 技术说明: Springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学习(毕设)…

计算机毕业设计实验室教室会议室预约小程序源码

开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学习(毕设)&a…

计算机毕业设计springboot垃圾分类管理系统源码

开发环境及工具: 大于Jdk1.8,大于mysql5.5,idea(eclipse) 技术说明: Springboot mybatis vue.js html 代码注释齐全,没有多余代码,适合学习(毕设),二次开发&#xff…

基于微信小程序的设备报修系统源码

开发环境及工具: 大于Jdk1.8,大于mysql5.5,idea(eclipse) 技术说明: Springboot mybatis vue.js html 代码注释齐全,没有多余代码,适合学习(毕设),二次开发&#xff…

java springboot景区购票微信小程序源码

开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学习(毕设)&a…

基于springboot的景区购票网站源码

开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse) 技术说明: springboot mybatis html vue.js bootstrap 代码注释齐全,没有多余代码,适合学习(毕设),二次开…