实验实践
大约 5 分钟数据挖掘
1.数据集介绍
前言
定义
ml-100k(MovieLens 100K) 是推荐系统领域最经典、最常用的公开基准数据集,由美国明尼苏达大学GroupLens实验室于1998年发布,专门用于电影推荐算法的研究、教学与验证。
一、核心基本信息
- 全称:MovieLens 100K Dataset(简称 ml-100k)
- 发布方:GroupLens Research(University of Minnesota)
- 发布时间:1998年4月
- 数据规模:
- 总评分数:100,000条(100k)
- 用户数:943名(匿名用户,均至少评分20部电影)
- 电影数:1682部
- 评分规则:1–5分整数制(1=最差,5=最好)
- 时间跨度:1997年9月19日 – 1998年4月22日(约7个月)
- 数据稀疏性:用户-电影评分矩阵密度仅约6.3%(93.7%为空),高度贴合真实推荐场景
二、数据集文件结构(解压后)
ml-100k.zip 解压后包含多个文本文件,核心文件如下:
| 文件名 | 内容 | 格式/分隔符 | 关键字段 |
|---|---|---|---|
| u.data | 核心评分数据(最重要) | 制表符 \t | user_id, item_id, rating, timestamp |
| u.item | 电影元数据 | 竖线 ` | ` |
| u.user | 用户人口统计信息 | 竖线 ` | ` |
| u.genre | 电影类型列表 | 空格 | 类型名称与ID映射 |
| u.info | 数据集统计摘要 | 文本 | 用户/电影/评分总数 |
| u1.base / u1.test ... u5.base / u5.test | 5折交叉验证划分 | 同u.data | 用于模型训练与测试的固定划分 |
三、核心文件示例(u.data)
u.data 是实验的核心输入,每行代表一条用户评分记录:
196 242 3 881250949
186 302 3 891717742
22 377 1 878887116字段含义:
user_id:用户ID(1–943)item_id:电影ID(1–1682)rating:用户评分(1–5)timestamp:Unix时间戳(可转为日期时间)
四、为什么用 ml-100k?
- 规模适中:10万条数据,计算快、易调试,适合教学与快速验证。
- 结构规范:文件格式统一、字段清晰,无需复杂清洗即可使用。
- 真实行为:来自真实电影评分网站,反映真实用户偏好与评分习惯。
- 基准成熟:几乎所有推荐算法(协同过滤、矩阵分解、深度学习等)都在该数据集上做过对比,便于复现与评估。
- 交叉验证支持:内置5折划分,直接用于模型评估。
五、与其他MovieLens版本对比
| 版本 | 评分数 | 用户数 | 电影数 | 特点 |
|---|---|---|---|---|
| ml-100k | 10万 | 943 | 1682 | 经典、轻量、教学首选 |
| ml-1m | 100万 | 6,040 | 3,952 | 更大规模,适合工业级算法验证 |
| ml-10m | 1000万+ | 71,567 | 10,681 | 超大规模,适合深度学习 |
| ml-20m / ml-25m | 2000万+ | 数十万 | 数万 | 最新、最大,含标签数据 |
六、获取方式
- 官方下载:https://grouplens.org/datasets/movielens/100k/
- 大小:约5MB,解压后约10MB
- 授权:非商业、研究用途免费使用
七、在你的实验中的作用
实验代码正是基于 u.data 文件:
- 按
timestamp排序,模拟“用户评分时电影已有历史评分”的真实时序。 - 为每条评分计算历史平均评分与历史评分数量,作为自变量。
- 以用户当前
rating为因变量,做相关性、分组对比与统计检验。
数据文件在学习通资料中 👇

2.实验内容
前言
定义
实验一:年评分平均值与年用户评价数量变化趋势分析
1. 实验项目概述
本实验基于MovieLens 100K的时序评分数据,利用MovieLens数据集的用户评分数据,绘制年评分平均值 和年用户评价数量的变化趋势
2. 实验目标和要求
实验目标
- 完成MovieLens 100K评分数据的时间维度预处理,将Unix时间戳转换为可分析的年份信息;
- 统计每年的评分总数(用户评价数量)和评分平均值;
- 绘制年度评分数量和评分均值的变化趋势图,直观展示时间维度的评分特征;
- 分析评分数量和评分均值的年度变化规律及潜在原因。
实验要求
- 数据预处理需准确转换时间戳,过滤无效数据;
- 统计结果需精准,可视化图表需清晰、标注完整;
- 结论需基于数据趋势,客观分析变化原因。
3. 实验的过程记录(代码截图和运行结果说明)
学生填写
4. 实验结论
学生填写
实验二:用户评分受项目已有平均评分影响的验证
1. 实验项目概述
本实验基于MovieLens 100K的时序评分数据,结合MovieLens数据集的用户评分数据,设计实验,观察用户评分是否受到当前项目已有平均评分的影响。
2. 实验目标和要求
实验目标
- 按时间顺序还原每条评分记录的“历史评分上下文”,计算用户评分时目标电影的已有平均评分;
- 分析用户评分与电影已有平均评分的相关性,量化影响程度;
- 按已有平均评分分组对比用户评分差异,通过统计检验验证影响的显著性;
- 总结用户评分受已有平均评分影响的规律。
实验要求
- 严格按时间戳排序计算历史评分,确保“已有评分”的时序合理性;
- 过滤无历史评分的记录,聚焦“受影响样本”;
- 采用相关性分析+独立样本t检验的组合方法,确保结论的统计有效性;
- 可视化分组对比结果,直观展示影响规律。
3. 实验的过程记录(代码截图和运行结果说明)
学生填写
4. 实验结论
学生填写
