推荐算法实践:movielens数据集

MovieLens 数据集介绍

MovieLens 数据集是由明尼苏达大学的GroupLens研究小组维护的一个广泛使用的电影评分数据集,主要用于推荐系统的研究。该数据集包含用户对电影的评分、标签以及其他相关信息,是电影推荐系统开发与研究的常用数据源。

数据集版本

  • • MovieLens 数据集有多个版本,不同版本的数据集规模和内容有所不同:
  • • MovieLens 100k 数据集:包含943位用户对1682部电影的100,000条评分数据,评分范围为1到5分。
  • • MovieLens 1M 数据集:包含1000名用户对3900部电影的100万条评分数据。
  • • MovieLens 10M 数据集:包含71,567名用户对10,681部电影的1000万条评分数据。
  • • MovieLens 20M 数据集:包含138,000名用户对27,000部电影的2000万条评分数据。
  • • MovieLens 25M 数据集:是目前最新发布的版本,包含更多的用户和电影数据。

数据集结构

数据集通常包含以下主要文件:

    1. 用户信息文件(Users.dat),包含用户的基本信息,如用户ID、性别、年龄、职业等。
  • • UserID:用户唯一标识。从1~6040, 代表了6040个MovieLens用户
  • • Gender:性别(M表示男性,F表示女性)。
  • • Age:用户年龄,分成了7组
    • • 1: "Under 18"
    • • 18: "18-24"
    • • 25: "25-34"
    • • 35: "35-44"
    • • 45: "45-49"
    • • 50: "50-55"
    • • 56: "56+"
  • • Occupation:用户职业,如学生、教师、工程师等。
    • • 0: "other" or not specified
    • • 1: "academic/educator"
    • • 2: "artist"
    • • 3: "clerical/admin"
    • • 4: "college/grad student"
    • • 5: "customer service"
    • • 6: "doctor/health care"
    • • 7: "executive/managerial"
    • • 8: "farmer"
    • • 9: "homemaker"
    • • 10: "K-12 student"
    • • 11: "lawyer"
    • • 12: "programmer"
    • • 13: "retired"
    • • 14: "sales/marketing"
    • • 15: "scientist"
    • • 16: "self-employed"
    • • 17: "technician/engineer"
    • • 18: "tradesman/craftsman"
    • • 19: "unemployed"
    • • 20: "writer"
  • • Zip-code:用户所在地区的邮政编码。
    1. 电影信息文件(Movies.dat),MovieID::Title::Genres。
  • • MovieID:电影唯一标识。从1~3952, 代表了3952部电影
  • • Title:电影标题,通常包含电影名称和发行年份。
  • • Genres:电影题材由竖线分开, 包括动作喜剧等18种电影类型,如"Action|Comedy"。
    • • Action
    • • Adventure
    • • Animation
    • • Children's
    • • Comedy
    • • Crime
    • • Documentary
    • • Drama
    • • Fantasy
    • • Film-Noir
    • • Horror
    • • Musical
    • • Mystery
    • • Romance
    • • Sci-Fi
    • • Thriller
    • • War
    • • Western
    1. 评分文件(Ratings.dat),UserID::MovieID::Rating::Timestamp
  • • UserID:用户唯一标识。
  • • MovieID:电影唯一标识。
  • • Rating:用户对电影的评分,通常为1到5的整数。
  • • Timestamp:评分的时间戳,表示自1970年1月1日以来的秒数。
    1. 标签文件(Tags.dat)包含用户为电影添加的标签。
  • • UserID:用户唯一标识。
  • • MovieID:电影唯一标识。
  • • Tag:用户为电影添加的标签内容。
  • • Timestamp:标签添加的时间戳。

数据集下载

files.grouplens.org/datasets/mo...
grouplens.org/datasets/mo...

数据集解析

以下是一个基于Python和Pandas库的MovieLens数据集解析代码示例,适用于常见的MovieLens数据集(如ml-100k或ml-1m):

ini 复制代码
import pandas as pd

# 定义数据集文件路径
user_file = 'users.dat'  # 用户信息文件
movie_file = 'movies.dat'  # 电影信息文件
rating_file = 'ratings.dat'  # 评分信息文件

# 定义数据集的列名
user_columns = ['user_id', 'gender', 'age', 'occupation', 'zip']
movie_columns = ['movie_id', 'title', 'genres']
rating_columns = ['user_id', 'movie_id', 'rating', 'timestamp']

# 读取数据
user_df = pd.read_csv(user_file, sep='::', header=None, names=user_columns, engine='python')
movie_df = pd.read_csv(movie_file, sep='::', header=None, names=movie_columns, engine='python', encoding='ISO-8859-1')
rating_df = pd.read_csv(rating_file, sep='::', header=None, names=rating_columns, engine='python')

# 查看数据的前几行
print("用户数据前几行:")
print(user_df.head())
print("\n电影数据前几行:")
print(movie_df.head())
print("\n评分数据前几行:")
print(rating_df.head())
相关推荐
CoovallyAIHub5 小时前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
速度暴涨10倍、成本暴降6倍!Mercury 2用扩散取代自回归,重新定义LLM推理速度
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
实时视觉AI智能体框架来了!Vision Agents 狂揽7K Star,延迟低至30ms,YOLO+Gemini实时联动!
算法·架构·github
CoovallyAIHub7 小时前
开源:YOLO最强对手?D-FINE目标检测与实例分割框架深度解析
人工智能·算法·github
CoovallyAIHub7 小时前
OpenClaw:从“19万星标”到“行业封杀”,这只“赛博龙虾”究竟触动了谁的神经?
算法·架构·github
刀法如飞7 小时前
程序员必须知道的核心算法思想
算法·编程开发·算法思想
徐小夕9 小时前
pxcharts Ultra V2.3更新:多维表一键导出 PDF,渲染兼容性拉满!
vue.js·算法·github
CoovallyAIHub10 小时前
OpenClaw一脚踩碎传统CV?机器终于不再只是看世界
深度学习·算法·计算机视觉
CoovallyAIHub10 小时前
仅凭单目相机实现3D锥桶定位?UNet-RKNet破解自动驾驶锥桶检测难题
深度学习·算法·计算机视觉
zone773910 小时前
002:RAG 入门-LangChain 读取文本
后端·算法·面试