【算法无用系列】电影推荐——余弦相似度计算用户相似度原理

news2024/11/16 15:54:48

【算法无用系列】通过余弦相似度计算电影、用户相似度

    话不多说,本文通过电影推荐系统中,基于余弦相似度算法计算出用户相似和电影相似原理。希望可以帮助一些代码不懂的同学一些思路。

记录用户电影评分数据

    一般情况来说,会根据用户的行为,记录当前用户对于某个电影的评分,简单的计算公式为

  1. 浏览 +1
  2. 点赞 +2
  3. 评论 +3
  4. 收藏 +5

    等等,当然这个累加的评分可以自行在代码中配置。最后我们会得出这样的一个用户电影评分关系表,如下所示,记录了用户和电影的评分。

用户ID电影ID评分
11015.0
11023.0
11032.5
21012.0
21022.5
21035.0
21042.0
31015.0
31044.0
31054.5
41014.0
41033.0
41042.0
41054.0
51024.0
51034.0
51041.0

转换矩阵

电影ID  101  102  103  104  105
用户ID                            
1       5.0  3.0  2.5  0.0  0.0
2       2.0  2.5  5.0  2.0  0.0
3       5.0  0.0  0.0  4.0  4.5
4       4.0  0.0  3.0  2.0  4.0
5       0.0  4.0  4.0  1.0  0.0

在这里插入图片描述

    对于二维表的数据转换为这样的一个矩阵。那么如何判断两个用户的相似程度如何呢?

在这里插入图片描述

    横着看这几个电影的评分,如果这些分数都特别相似,那就可以证明两个用户的兴趣爱好类似,越相似,那么相似度越高。

在这里插入图片描述

    竖着看也是一样,如果两列数值越相似,那么就可以认为两个电影越相似(当前这仅仅是测试,在真实的场景中,这样的单一维度来计算电影相似度是不够的)。

    或者这样的一个多维度矩阵无法和我们在高中学到的二维坐标系XY轴绑定起来。那么我可以把维度减少一下。如下,变成了高中时常见的XY轴二维坐标。

电影ID  101  102   
用户ID                            
1       5.0  3.0  
2       2.0  2.5  

在这里插入图片描述

    如上图所示,形成两个向量,两个向量的夹角越小,则证明两个 越相似。

在这里插入图片描述

    当前,以上数据只是为了更好理解计算公式,真实情况下,维度会更多,如下就是一个5个维度,不过我们可以继续套用公式。

电影ID  101  102  103  104  105
用户ID                            
1       5.0  3.0  2.5  0.0  0.0
2       2.0  2.5  5.0  2.0  0.0
3       5.0  0.0  0.0  4.0  4.5
4       4.0  0.0  3.0  2.0  4.0
5       0.0  4.0  4.0  1.0  0.0

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装Ubuntu桌面系统(虚拟机)

VirtualBox创建虚拟机(为安装Ubuntu桌面系统)-CSDN博客 虚拟机的创建方法如上链接。当虚拟机开始引导之后,便正式开始Ubuntu桌面版的安装过程。Ubuntu桌面版界面做得很漂亮,操作起来也方便,很适合作为入门Linux的操作…

探索安全之道 | 企业漏洞管理:从理念到行动

如今,网络安全已经成为了企业管理中不可或缺的一部分,而漏洞管理则是网络安全的重中之重。那么企业应该如何做好漏洞管理呢?不妨从业界标准到企业实践来一探究竟!通过对业界标准的深入了解,企业可以建立起完善的漏洞管…

Java+SVNCloud+Mysql课程设计

文章目录 1、主要内容2、所需准备3、与sql访问的中间类:SqlMessage4、窗口界面5、main方法 1、主要内容 课程设计,主要通过Javas wing创建窗口,jdbc连接云端mysql数据库进行基本操作,支持随机生成数据并用动态展示数据结果。 先…

重生之 SpringBoot3 入门保姆级学习(16、函数式 Web 编程)

重生之 SpringBoot3 入门保姆级学习(16、函数式 Web 编程) 3.4 函数式 Web 3.4 函数式 Web 个人写过 go 类似于 go gin 框架 1、场景 场景: User RESTful - CRUD GET/user/1 获取1号用户GET/users 获取所有用户POST/user 清求体携带JSON,新…

Java注解使用与自定义

一、什么是注解 注解是元数据的一种形式,它提供有关程序的数据,该数据不属于程序本身。注解对其注释的代码操作没有直接影响。换句话说,注解携带元数据,并且会引入一些和元数据相关的操作,但不会影响被注解的代码的逻…

程序员自我修养

目录 一、技术能力二、持续学习三、问题解决能力四、代码质量五、团队合作六、责任心七、时间与任务管理八、适应变化九、客户导向十、安全性意识十一、文档撰写十二、伦理与法律意识十三、健康生活 程序员作为现代技术行业的核心成员,不仅需要掌握扎实的技术技能&…

在 Java 项目中扫描识别图片中的文字(详细教程)

目录 需求: 步骤: 1、maven配置(pom.xml): 2、下载依赖文件: 3、代码: post进行测试: 测试图片: 测试结果: 需求: 上传图片文件进行扫描…

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅

MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅 文章目录 MongoDB CRUD操作:地理位置应用——通过地理空间查询查找餐厅地图的扭曲搜索餐厅浏览数据查找当前邻居查找附近所有餐厅查找一定距离内的餐厅使用$geoWithin,不排序使用…

Windows 2000 Server:安全配置终极指南

"远古技术,仅供娱乐" 💭 前言:Windows 2000 服务器在当时的市场中占据了很大的比例,主要原因包括操作简单和易于管理,但也经常因为安全性问题受到谴责,Windows 2000 的安全性真的那么差吗&#x…

kube-promethesu调整coredns监控

K8s集群版本是二进制部署的1.20.4,kube-prometheus对应选择的版本是kube-prometheus-0.8.0 Coredns是在安装集群的时候部署的,采用的也是该版本的官方文档,kube-prometheus中也有coredns的监控配置信息,但是在prometheus的监控页…

主流 RTOS 实时操作系统介绍

主流 RTOS 实时操作系统介绍 1 介绍1.1 概述1.2 RTOS 应用领域1.3 知名实时系统VRTXpSOSOS-9embOSAzure RTOS 【ThreadX 】OpenWrt 【路由】Mbed OS 【ARM 公司开发】VxWorks 【KUKA、ABB、etc】LynxOSQNXNucleusTHREADXuC/OS –II/III 【Silicon Labs 收购,更新频率…

Qt CAN总线发送和接收案例

文章目录 设置比特率类设置比特率类实现 发送数据帧类发送数据帧类的实现m_ui 发送帧界面 连接类连接类实现连接类UI设计 主窗口类主窗口类实现主界面UI 整体UIQT案例 设置比特率类 // 文件: BitRateBox.h // 作用: 定义了一个用于选择比特率的组合框类 BitRateBox&#xff0c…

冯喜运:6.6周四汇市行情怎么看?黄金原油日内短线布局操作

【黄金消息面分析】:周三(6月5日)美市盘初,现货黄金震荡走高,目前交投于2342美元/盎司附近。黄金价格周二下跌超过1%,原因是美元在本周晚些时候美国就业数据公布前趋于稳定,该数据可能为美联储的…

敦煌网、ebay、速卖通等平台一直被差评怎么办?

在电商行业里一直都有一句话,有评行走天下,无评寸步难行 而没有review打造爆款的案例是少之甚少,众所周知,review已经成为用户衡量一件商品的标尺,目前我也是看到一个文章上面写到,一个卖家表示自己平时运…

CSRF+XSS组合

环境&#xff1a;dvwa靶场low等级CSRFXSS payload1 将如下代码 1.html 放置攻击者web服务器中&#xff08;dvwa靶场搭建的网站根目录&#xff09; <html> <body onload"javascript:fireForms()"> <script language"JavaScript"> var …

5.透明效果

实时渲染中要实现透明效果&#xff0c;通常会在渲染模型时控制它的透明通道&#xff08;Alpha channel&#xff09;。 当一个物体被渲染到屏幕上时&#xff0c;每个片元除了颜色和深度值之外&#xff0c;它还有另一个属性—透明度。 当透明度为1时&#xff0c;表示该像素是完…

php质量工具系列之phpmd

PHPMD PHP Mess Detector 它是PHP Depend的一个衍生项目&#xff0c;用于测量的原始指标。 PHPMD所做的是&#xff0c;扫描项目中可能出现的问题如&#xff1a; 可能的bug次优码过于复杂的表达式未使用的参数、方法、属性 PHPMD是一个成熟的项目&#xff0c;它提供了一组不同的…

网站安全小白也能搞定的SSL证书安装免费方法

大家都知道&#xff0c;部署一个网站&#xff0c;除了购买域名&#xff0c;现在基本标配SSL证书。 我们以aliyun为例 大家看到这个&#xff0c;收费的SSL证书几千-几万1年不等。这时候&#xff0c;你就会想有没有免费的可以搞。linux老鸟都知道&#xff0c; Let’s Encrypt 、…

痛风患者饮食指南

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f4d2; 饮食指南 &#x1f4d2;&#x1f957; 可食用食品&#x1f966; 蔬菜类&#x1f34e; 水果类&#x1f33e; 全谷物&#x1f95b; 低脂奶制品&#x1f330; 坚果类&#xff08;适量&#xff09;&#x1fad8; 豆制品&am…

RunLoop小白入门

核心概念 什么是 RunLoop ? RunLoop 是 iOS 和 macOS 应用程序框架中的一个核心概念&#xff0c;用于管理线程的事件处理。它可以看作是一个循环&#xff0c;用于持续接收和处理各种事件&#xff0c;如用户输入、定时器、网络事件等。RunLoop 在保持应用程序响应用户交互和系…