# 🧩 Summary
从严格意义上说,它是一个 **“开放数据集(Open Dataset)”,不是一个完整的软件开源项目**。
不过,它确实是开放、可自由使用的研究资源,并且源自一个长期维护的开源科研项目体系——**GroupLens Project**。
由 [[GroupLens]] 研究组长期维护,用于学术研究与教学。
# 💡 Cues
[[推荐算法]]
# Notes
非常好的问题 👍
你问的“**MovieLens 是啥**”,其实是一个非常经典的「**推荐系统基准数据集(Recommendation Benchmark Dataset)**」的变体。
它常被用来**验证推荐算法效果**、**构建强基线模型**,几乎是所有推荐系统入门者的“Hello World”。
---
## 🧩 一、这是哪类经典问题的变体?
> **MovieLens** 属于「**推荐系统实验与基准测试(Recommender System Benchmarking)**」问题的变体。
换句话说,它提供了一组**干净、真实、结构良好的“用户–物品–评分”数据**,
让你可以专注于算法,而不用自己采集数据。
---
## 🎬 二、基本信息
|项目|内容|
|---|---|
|**名称**|MovieLens Dataset|
|**维护者**|美国明尼苏达大学 GroupLens 研究组|
|**数据内容**|用户、电影、评分、时间戳|
|**任务类型**|协同过滤(Collaborative Filtering)、排序推荐、特征建模|
|**网址**|[https://grouplens.org/datasets/movielens/](https://grouplens.org/datasets/movielens/)|
---
## 📦 三、数据结构示例
|userId|movieId|rating|timestamp|
|---|---|---|---|
|1|31|2.5|1260759144|
|1|1029|3.0|1260759179|
|2|10|4.5|1260759182|
对应的电影信息文件通常叫 `movies.csv`:
|movieId|title|genres|
|---|---|---|
|31|Dangerous Minds (1995)|Drama|
|1029|Dumbo (1941)|Animation, Children, Musical|
---
## 🧮 四、常见版本(数据规模)
|版本|用户数|电影数|评分数|文件大小|
|---|---|---|---|---|
|**ml-latest-small**|610|9,000+|100,000+|1 MB|
|**ml-1m**|6,000|4,000|1,000,000|6 MB|
|**ml-10m**|70,000|10,000|10,000,000|60 MB|
|**ml-25m**|160,000|60,000|25,000,000|250 MB|
> 一般入门实验(比如“GBDT + 10个特征”)常用 **ml-latest-small** 或 **ml-1m**。
---
## ⚙️ 五、你那句话的意思
>「MovieLens:GBDT 基线 + 10 个高质量特征;AUC > 0.80」
这是一个**推荐系统入门实验任务**,解释如下:
|元素|含义|
|---|---|
|**MovieLens**|使用 MovieLens 数据集(电影评分数据)|
|**GBDT 基线**|用梯度提升树(如 LightGBM/XGBoost)作为推荐模型|
|**10 个高质量特征**|构造 10 个与推荐强相关的输入特征(例如:平均评分、最近评分时间、用户活跃度等)|
|**AUC > 0.80**|模型在测试集上达到 AUC(ROC 曲线下面积)超过 0.8,代表预测性能良好|
这是一个**强基线级别的小型推荐实验**,非常适合:
- 练习特征工程;
- 熟悉 GBDT;
- 了解推荐系统的核心评价指标。
---
## 🎯 六、MovieLens 的典型应用方向
|目标|可做的实验|
|---|---|
|**协同过滤**|用矩阵分解(SVD / ALS)预测用户评分|
|**排序推荐**|用 GBDT / DNN 模型预测“是否喜欢”|
|**特征工程**|构造时间、类型、用户画像等特征|
|**冷启动研究**|处理新用户或新电影无数据的问题|
|**多模态推荐**|加入电影简介、海报、演员特征等信息|
---
## ✅ 小结一句话
> **MovieLens** 是一个用于推荐算法研究的经典开源数据集,
> 它提供了用户对电影的评分记录,是构建和验证推荐模型(如 GBDT、DNN、CF)的**标准实验平台**。
---
是否希望我帮你示范一下:
在 MovieLens 数据上如何构造 “GBDT + 10个高质量特征” 的入门实验?(我可以帮你写出整个特征设计思路 + 伪代码框架。)