电影推荐算法

news2024/9/23 15:27:34

模型训练

下载数据集,解压到项目目录下的./ml-1m文件夹下。数据集分用户数据users.dat、电影数据movies.dat和评分数据ratings.dat。
**

数据集分析

**
user.dat:分别有用户ID、性别、年龄、职业ID和邮编等字段。
数据集网站地址为http://files.grouplens.org/datasets/movielens/ml-1m-README.txt对数据的描述:
使用UserID、Gender、Age、Occupation、Zip-code分别表示用户ID、性别、年龄、职业和邮政编码,M表示男性,F表示女性。年龄范围表示:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
UserID、Gender、Age和Occupation都是类别字段,其中邮编字段不使用。rating.dat数据分别有用户ID、电影ID、评分和时间戳等字段。数据集网站的描述:UserID范围为16040;MovieID范围为13952;Rating表示评分,最高5星;Timestamp为时间戳,每个用户至少20个评分。查看ratings.dat的前5个数据,结果如图4-7所示,相关代码如下:
在这里插入图片描述
评分字段Rating是监督学习的目标,时间戳字段不使用。movies.dat数据集分别有电影ID、电影名和电影风格等字段。数据集网站的描述:
使用MovieID、Title和Genres,其中MovieID和Genres是类别字段,Title是文本。Title与IMDB提供的标题相同(包括发行年份),Genres是管道分隔,并且选自以下流派:

数据预处理
通过研究数据集中的字段类型,发现有一些是类别字段,将其转成独热编码,但是UserID、MovieID的字段会变稀疏,输入数据的维度急剧膨胀,所以在预处理数据时将这些字段转成数字。操作如下:
UserID、Occupation和MovieID不变。
Gender字段:需要将F和M转换成0和1。
Age字段:转成7个连续数字0~6。
Genres字段:是分类字段,要转成数字。将Genres中的类别转成字符串到数字的字典,由于部分电影是多个Genres的组合,将每个电影的Genres字段转成数字列表。
Title字段:处理方式与Genres一样,首先,创建文本到数字的字典;其次,将Title中的描述转成数字列表,删除Title中的年份。
统一Genres和Title字段长度,这样在神经网络中方便处理。空白部分用PAD对应的数字填充。实现数据预处理相关代码如下:在这里插入图片描述

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

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

相关文章

数智未来,因你而来 | 昇腾AI创新大赛2023全新启动

在5月6日-7日举行的昇腾AI开发者峰会2023上,昇腾AI创新大赛2023正式启动。大赛旨在鼓励全产业开发者基于昇腾AI技术和产品,打造软/硬件解决方案、探索模型算法,加速AI与行业融合,促进开发者能力提升。 会上,中国工程院…

【vite+vue3.2 项目性能优化实战】使用vite-plugin-cdn-import进行CDN加速优化项目体积

CDN(Content Delivery Network)即内容分发网络,是一种通过在全球范围内分布式部署服务器来加速网络内容传输的技术。CDN加速的原理是,当用户请求访问某个资源时,CDN会根据用户的地理位置和网络状况,自动选择…

【内置函数】——高级编程——如桃花来

目录索引 1. hasattr():2. getattr():有:没有则报错: 3. setattr():4. delattr():5. issubclass():6. isinstance():判断前面是不是属于后面的类型:判断前面是不是属于后面的类型之一:判断前面是…

百度网盘密码数据兼容处理

文章目录 一、问题描述二、代码实现1. 配置类2. 数据库配置3. config 配置类4. AOP 通知类5. 数据层6. 业务层7. 实体类 三、测试及结果 一、问题描述 需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理。 分析: ① 在业务方法执行之前对所…

目标检测YOLO(V1、V2、V3)入门

one-stage和two-stage的区别 YOLO常见的指标 YOLO V1 yolo v1架构解读 yolo v1损失函数 NMS非极大值抑制 yolo v1版本的问题 重叠在一起的物体不好分类,只是一个单分类问题多标签问题(狗和哈士奇) v2和v1的区别 v2网络结构 batch normaliz…

【iOS】---pthread,NSThread

在iOS中多线程开发有四种方式,在之前我们浅浅了解了一下GCD,这期来看看pthread和NSThread pehread pthread简介 pthread 是一套通用的多线程的 API,可以在Unix / Linux / Windows 等系统跨平台使用,使用 C 语言编写,…

Redis持久化之RDB高频问题

1、RDB是如何应用的? 因为记录的是操作命令,而不是实际的数据,所以,用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常使用…

ApacheBench网站压力测试

ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试,亦可用于发起CC攻击,请不要滥用哦。ApacheBench (简称ab)是一个指令列程式,可用于网站压力测试。如果已经安装过Apache&a…

Linux基本指令----上

Linux基本指令----上 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令&&rm指令man指令cp指令mv指令cat指令echo指令more指令less指令head指令tail指令结语 ls指令 语法: ls [选项] [目录或文件] 功能: 对于目录,该命令列出该目录下…

Spring Boot集成ShardingSphere实现按月数据分片及创建自定义分片算法 | Spring Cloud 44

一、前言 在前面我们通过以下章节对数据分片有了基础的了解: Spring Boot集成ShardingSphere实现数据分片(一) | Spring Cloud 40 Spring Boot集成ShardingSphere实现数据分片(二) | Spring Cloud 41 Spring Boot集…

【Windows】高效的本地文件搜索工具《Everything》

🐳好用高效的本地文件搜索工具《Everything》 🧊一、什么是Everything🧊二、为什么选择Everything🧊三、下载Everything🧊四、Everything为什么高效 🧊一、什么是Everything Everything是一个运行于Window…

单片机GD32F303RCT6 (Macos环境)开发 (五)—— IAP代码架构工程

IAP代码架构工程 1、IAP一般分两个工程,一个Bootloader工程,一个Application工程。 这两个工程的差异后面会讲。 IAP架构工程的好处在于产品上线以后,想要升级的话,不用借助烧录器,就可以完成产品的软件升级。 2、Boo…

轻量级团队协作工具推荐,提高效率从选择开始

首先不得不夸一句:爱用Zoho工具的人,都十分自律和高效,因为Zoho旗下有多种简单好用的团队协作工具。 1、Zoho Projects项目管理工具 项目任务进度和团队沟通与协作管理软件Zoho Projects是一款基于web的软件。专为团队协作而设计,…

手写卡尔曼滤波

形象图 里面的my_Kalman.ipynb 和ppt就是了,其他的是原始资料和 辅助函数 链接:https://pan.baidu.com/s/1J1nA–oqoj8OvgbrA3LfbQ?pwd1264 提取码:1264 import numpy as np import matplotlib.pyplot as plt from matplotlib.animation i…

物理验证LVS对bulk(体)的理解和处理技巧

对于物理验证中的LVS,需要对各种物理器件进行SpiceVsGDS的比对,基于现在流行的std-cell的库的设计方法,LVS需要对CMOS器件多相应的处理,这里会涉及到一些具体的物理库的知识和小的技巧,这里结合具体的物理设计和CDL形态…

网络安全战略:如何应对不断变化的威胁环境?

网络安全一直是大家所关注的重点。在如今的数字化时代,网络安全问题日益严峻,网络攻击者使用更加复杂和高级的攻击方式,企图从各种角度入侵和危害我们的计算机网络。因此,我们必须制定一套完善的网络安全战略,以便更好…

LeetCode 牛客单链表OJ题目分享

目录 链表的回文结构相交链表环形链表I环形链表II 链表的回文结构 链接: link 题目描述: 题目思路: 本题思路是找到每一条链表的中间节点,之后逆置中间节点之后的链表,定义两个指针,分别指向逆置后链表的头部的链表的…

8年资深测试总结,性能测试基础知识(大全)你的进阶之路...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试&#xf…

力扣sql中等篇练习(十七)

力扣sql中等篇练习(十七) 1 计算布尔表达式的值 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 使用SELECT子句中的子查询查询到对应的值 SELECT t1.left_operand,t1.operator,t1.right_operand,cas…

Obsidian templater日记模板添加一个随机问题

Obsidian templater日记模板添加一个随机问题 简介 每天日记里写同样的东西,感觉有点无聊,想问自己一些问题,每天不同。 查到有插件random structural diary,我想要的功能就是这样,但是没懂这个插件怎么放进templat…