爱数科(iDataScience)平台是一款数据科学科研和教学一体化平台,集成数十行业数千数据集、科研案例模板。帮助科研人员快速使用大数据和人工智能技术开展研究。支持高校开展大数据通识课程教学。帮助非专业人员进行数据分析和生成数据分析报告。



随着人工智能技术的快速发展,智能个性化推荐技术已经广泛地应用于各个领域。所谓智能个性化推荐技术,是指根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。本案例将利用IMDB电影数据集构建一个个性化推荐系统,向用户推荐其可能喜爱的电影。

爱数科案例 | 电影智能推荐_相似度


1. 读取IMDB电影数据集

IMDB电影数据集包含互联网电影资料库(Internet Movie Database,简称IMDb)中一些电影的信息,例如名称、年份、时长、类型、评级、概要等等,共1000条数据,16个字段。我们首先读取数据集。

爱数科案例 | 电影智能推荐_字段_02


2. 字段基本统计信息

查看数据集各字段的基本统计信息,发现有些字段存在缺失值。后续用到的主要字段是电影名称Series_Title和电影概要Overview,它们不存在缺失值,所以我们对其它字段的缺失值不作处理。

爱数科案例 | 电影智能推荐_相似度_03


3. 筛选出电影名称

首先筛选出电影名称Series_Title,作为后续推荐电影的名称列表,所有推荐的电影都会从这个列表中产生。

爱数科案例 | 电影智能推荐_相似度_04


排在前五的电影分别是肖申克的救赎(The Shawshank Redemption)、教父(The Godfather)、黑暗骑士(The Dark Knight)、教父2(The Godfather: Part II)、十二怒汉(12 Angry Men)。

4. 筛选出电影概要

为了推荐与用户喜爱的电影相似的电影,必须计算不同电影之间的相似度。电影概要是对电影内容的高度概括,可以用于比较电影之间的相似程度。所以从数据集中筛选出电影概要Overview,用于计算电影间的相似度。

爱数科案例 | 电影智能推荐_字段_05


5. TF-IDF向量化

文本不能直接计算相似度,需要将文本中的词用数值进行表示,把文本变为一个数值向量。TF-IDF方法对文本中的每个词计算一个重要程度数值,从而将文本进行向量化。

爱数科案例 | 电影智能推荐_字段_06


对电影概要进行文本向量化,为提高计算效率,我们只取重要性最高的前100个词,这样每一个文本都被转换为一个100维的向量。

6. 计算电影间的相似度

将电影概要向量化后,使用余弦距离来衡量不同电影间的相似度。余弦距离通过测量两个向量的夹角的余弦值来度量它们之间的距离,取常用于衡量文本间的相似性。

爱数科案例 | 电影智能推荐_相似度_07


结果返回样本间的距离矩阵(只展示前5个),数值表示余弦距离。每一列表示当前样本与其它样本间的余弦距离,例如第2列的第1行和第2行分别表示第0号样本与自身和第1号样本的余弦距离。

7. 根据输入电影推荐

输入电影名称列表(筛选出的电影名称Series_title)和相似度矩阵,在参数面板中输入电影名称(必须是电影名称Series_title中的电影),表示已知的用户喜爱的电影,然后输入推荐数量,默认推荐5部电影,就会得到系统推荐的电影。基于物品的协同过滤组件会根据已知的用户喜爱的电影在相似度矩阵中找到与其最为相似的5部电影。

爱数科案例 | 电影智能推荐_相似度_08


输入电影名称是黑暗骑士(The Dark Knight),推荐的5部电影为罗宾汉历险记(The Adventures of Robin Hood)、最长的一天(The Longest Day)、汉密尔顿(Hamilton)、雷神3:诸神黄昏(Thor: Ragnarok)和巨蟒与圣杯(Monty Python and the Holy Grail)。



爱数科(iDataScience)平台是一款数据科学科研和教学一体化平台,集成数十行业数千数据集、科研案例模板。帮助科研人员快速使用大数据和人工智能技术开展研究。支持高校开展大数据通识课程教学。帮助非专业人员进行数据分析和生成数据分析报告。