合集:AI案例-NLP-零售业
AI问题:聚类问题
数据集:MovieLens100K数据集。稳定的基准数据集。在 1997年9月19日至1998年4月22日的七个月期间,1000名用户在1700部电影上的100,000条评分。
数据集价值:构建推荐系统
解决方案:相似度评测
稳定的基准数据集。1000名用户在1700部电影上的100,000条评分。
一、MovieLens简介
MovieLens 是一个知名的电影推荐系统,最早由明尼苏达大学的研究团队开发。在MovieLens中,”Lens”一词具有双重意义,既指代整个推荐系统,也象征着系统的核心功能——即通过筛选和过滤大量信息来为用户提供个性化推荐。以下是对 MovieLens 的详细介绍:
基本信息
- 开发者:明尼苏达大学计算机科学系的研究人员。
- 主要功能:为用户提供个性化的电影推荐服务。
发展历程
- 早期版本(1997年):
- 最初是为在线电影租赁服务 MovieFinder 开发的推荐引擎。
- 后来在 ACM SIGIR 会议上发表相关论文,引起广泛关注。
- GroupLens 研究项目(1997年起):
- 起源于美国明尼苏达大学双城分校计算机科学与工程系。
- 旨在研究基于协作过滤的推荐系统。
- 发布了 GroupLens 推荐系统及其改进版本。
- 商业化及扩展(2000年代):
- GroupLens Research 将研究成果商业化,成立了 NetFlix Prize 竞赛。
- 通过与 Netflix 合作,推动了推荐系统技术的进步。
- 当前状态:
- 作为一个学术研究和教学平台,持续更新和维护。
- 提供了多个版本的公开数据集供学术界和企业界使用。
主要特点
- 个性化推荐:基于用户的观影历史和评分数据,利用机器学习算法生成定制化的推荐列表。
- 多样性数据集:提供了不同规模和类型的电影评分数据集,如 MovieLens 1M、10M、20M 等。
- 开源与社区支持:部分版本的代码和数据集公开可用,促进了全球范围内的研究和应用。
应用场景
- 在线视频平台:类似 Netflix 和 Hulu 这样的流媒体服务可以利用 MovieLens 的技术为用户推荐影片。
- 电子商务:电商网站可根据用户的购买历史推荐相关商品。
- 内容推荐引擎:广泛应用于新闻、音乐等多媒体内容的个性化推荐。
总之,MovieLens 不仅代表了先进的推荐算法和系统设计理念,还推动了整个推荐系统领域的发展和创新。
二、数据集内容
MovieLens100K数据集是通过 MovieLens 网站(movielens.umn.edu)在 1997 年 9 月 19 日至 1998 年 4 月 22 日的七个月期间收集的。该数据已经过清理——删除了评分少于 20 条或没有完整人口统计信息的用户。MovieLens100K数据集包含:943 名观影用户对 1682 部电影的 100,000 条评分(1-5 分)。每个观影用户至少评价了 20 部电影。观影用户的简单人员统计信息(年龄、性别、职业、邮编)。
数据结构
以下是数据集数据结构的描述:
**u.data**
完整的数据集,包括943 名用户对 1682 项的 100,000 条评分。每个用户至少评价了 20 部电影。用户和项目从 1 开始连续编号。数据是随机排序的。这是一个制表符分隔的列表:
用户 id | 项目 id | 评分 | 时间戳。
时间戳是从 1970 年 1 月 1 日 UTC 开始的 Unix 秒。
**u.info**
数据集中的用户数、项目数和评分数。
**u.item**
关于项目(电影)的信息;这是一个制表符分隔的列表
电影 id | 电影标题 | 发行日期 | 视频发行日期 |
IMDb URL | 未知 | 动作 | 冒险 | 动画 |
儿童 | 喜剧 | 犯罪 | 纪录片 | 戏剧 | 幻想 |
黑色电影 | 恐怖 | 音乐 | 神秘 | 浪漫 | 科幻 |
惊悚 | 战争 | 西部 |
最后 19 个字段是类型,1 表示电影属于该类型,0 表示不属于;
一部电影可以同时属于多个类型。
电影 id 是 u.data 数据集中使用的 id。
**u.genre**
类型列表。
**u.user**
用户的人员统计信息;这是一个制表符分隔的列表
用户 id | 年龄 | 性别 | 职业 | 邮编
用户 id 是 u.data 数据集中使用的 id。
**u.occupation**
职业列表。
**u1.base**
**u1.test**
u2.base
u2.test
u3.base
u3.test
u4.base
u4.test
u5.base
u5.test
数据集 u1.base 和 u1.test 至 u5.base 和 u5.test是用户评论数据集的 80%训练和20%测试数据分割。每个 u1, ..., u5 都有不相交的测试集;这是为了5 折交叉验证/5 fold cross validation(其中您重复实验用每个训练和测试集并平均结果)。这些数据集可以通过 mku.sh 从 u.data 生成。
在5折交叉验证中,数据集被分成5个相等的部分,每次选择其中1部分作为测试集,其余4部分作为训练集,这个过程重复5次,每次选择不同的一部分作为测试集。
**ua.base, ua.test, ub.base, 和 ub.test**
数据集 ua.base, ua.test, ub.base, 和 ub.test将 用户评论数据集分割成一个训练集和一个测试集,测试集中每个用户恰好有 10 条评分。ua.test, ua.test 和 ub.test 是不相交的。这些数据集可以通过 mku.sh 从 u.data 生成。
**allbut.pl**
生成训练和测试集的脚本,其中除了 n 条之外的所有用户评分都在训练数据中。
**mku.sh**
一个 shell 脚本,用于从 u.data 生成所有的用户评论数据集。
数据集版权许可协议
Deed – CC0 1.0 Universal – Creative Commons
引用要求
要在出版物中使用该数据集,请引用以下论文:
F. Maxwell Harper 和 Joseph A. Konstan。2015。The MovieLens Datasets: History and Context。ACM Transactions on Interactive Intelligent Systems (TiiS) 5, 4, Article 19 (2015 年 12 月), 19 页。
DOI=http://dx.doi.org/10.1145/2827872
三、推荐系统样例
因MovieLens100K数据集比较陈旧,现在大多基于MovieLens20M数据集去构建推荐系统,请参考《MovieLens2千万条影视评分数据集用于构建推荐系统》中的推荐系统样例。