开始使用免费开始使用

逐步实现 K-nearest neighbors

您刚刚看到如何使用 K-nearest neighbors(KNN)根据「相似人群的智慧」来推断某人可能会如何为某个物品打分。 在本练习中,您将亲自走一遍这一流程,以加深对其工作原理的理解。

为了帮助您上手,鉴于您之前已经多次生成相似度矩阵,这一步我们已为您完成:用户相似度矩阵已包装为 DataFrame 并加载为 user_similarities

该矩阵以用户为行和列,行列交汇处为相应的相似度分数。

在本练习中,您将使用 user_001 的相似度分数,找到其最近邻居,并基于这些邻居对一部电影的评分,推断如果 user_001 看了这部电影,他们可能会给出的评分。

本练习是课程的一部分

用 Python 构建推荐引擎

查看课程

练习说明

  • 通过在 ordered_similarities 中提取排名前 10 的用户,并将其存为 nearest_neighbors,找到 User_A 的 10 个最近邻居的 ID。
  • user_ratings_table 中提取这些 nearest_neighbors 用户给出的评分,存为 neighbor_ratings
  • 计算这些用户对电影 Apollo 13 (1995) 的平均评分,以此推断如果 User_A 看过这部电影,他们可能会给出的评分。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Isolate the similarity scores for user_1 and sort
user_similarity_series = user_similarities.loc['user_001']
ordered_similarities = user_similarity_series.sort_values(ascending=False)

# Find the top 10 most similar users
nearest_neighbors = ordered_similarities[1:11].____

# Extract the ratings of the neighbors
neighbor_ratings = user_ratings_table.____(nearest_neighbors)

# Calculate the mean rating given by the users nearest neighbors
print(neighbor_ratings['Apollo 13 (1995)'].____())
编辑并运行代码