对比基于物品与基于用户的模型
您已经了解了两种不同的 KNN 方法。第一种是物品-物品 KNN:使用用户已评分的、与目标电影最相似的前 \(k\) 部电影的平均分,来为用户尚未观看的电影给出预测评分。另一种是用户-用户 KNN:使用与目标用户最相似的前 \(k\) 位用户对该电影的评分平均值,来预测目标用户会给这部电影的评分。
现在,您将比较这两种方法,并计算 user_002 会给 Forrest Gump 的评分。
user_rating_predictor 模型(基于相似用户对该电影的评分来预测)和 movie_rating_predictor 模型(基于该用户对相似电影的评分来预测)的代码已为您准备好开头部分。
KNeighborsRegressor 已为您导入。
本练习是课程的一部分
用 Python 构建推荐引擎
练习说明
- 创建一个名为
user_knn的用户-用户 K 近邻模型。 - 拟合
user_knn模型,然后在target_user_x上进行预测。 - 同样地,拟合一个名为
movie_knn的物品-物品 K 近邻模型,然后在target_movie_x上进行预测。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Instantiate the user KNN model
user_knn = ____()
# Fit the model and predict the target user
user_knn.____(other_users_x, other_users_y)
user_user_pred = user_knn.____(target_user_x)
print("The user-user model predicts {}".format(user_user_pred))
# Instantiate the user KNN model
movie_knn = KNeighborsRegressor()
# Fit the model on the movie data and predict
movie_knn.____(other_movies_x, other_movies_y)
item_item_pred = movie_knn.____(target_movie_x)
print("The item-item model predicts {}".format(item_item_pred))