查找相似喜好的电影
与之前只计算两部电影之间的相似度类似,您也可以在所有用户上计算相似度,根据用户的评分找出与某部电影最相似的电影。
这个思路与您在内容过滤中使用的方法类似。
您将先计算所有电影之间的相似度分数,然后聚焦到目标电影,通过提取并排序其对应列中的相似度分数来深入分析。
movie_ratings_centered 已经加载,其中每一行代表一部电影,数值为其中心化后的评分。
本练习是课程的一部分
用 Python 构建推荐引擎
练习说明
- 计算
movie_ratings_centered中所有电影之间的相似度矩阵,并将其存为 similarities。 - 将
similarities矩阵包装为一个 DataFrame,其列和行均使用movie_ratings_centered的索引。
交互式实操练习
通过完成这段示例代码来试试这个练习。
from sklearn.metrics.pairwise import cosine_similarity
# Generate the similarity matrix
similarities = ____(____)
# Wrap the similarities in a DataFrame
cosine_similarity_df = ____.____(____, index=____.____, columns=____.____)
# Find the similarity values for a specific movie
cosine_similarity_series = cosine_similarity_df.loc['Star Wars: Episode IV - A New Hope (1977)']
# Sort these values highest to lowest
ordered_similarities = cosine_similarity_series.sort_values(ascending=False)
print(ordered_similarities)