比较推荐方法
在本课程中,您使用多种方法(基础平均评分、KNN、矩阵分解)预测用户对未看过电影的评分。在最后这个练习中,您将使用 mean_squared_error() 来比较平均评分法与矩阵分解法的效果。
基于平均值的预测已加载为 avg_pred_ratings_df,基于计算得到的预测已加载为 calc_pred_ratings_df。
真实评分数据已加载为 act_ratings_df。
最后,mean_squared_error() 函数已从 sklearn.metrics 导入,供您使用。
本练习是课程的一部分
用 Python 构建推荐引擎
练习说明
- 在
act_ratings_df、avg_pred_ratings_df和calc_pred_ratings_df这三个 DataFrame 中,提取第 0–20 行与第 0–100 列(即您要比较的区域)。 - 基于
actual_valuesDataFrame 创建一个只针对非空单元格的掩码。 - 分别计算两种预测与真实值之间的均方误差。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Extract the ground truth to compare your predictions against
actual_values = act_ratings_df.____[:20, :100].values
avg_values = avg_pred_ratings_df.____[:20, :100].values
predicted_values = calc_pred_ratings_df.____[:20, :100].values
# Create a mask of actual_values to only look at the non-missing values in the ground truth
mask = ~np.isnan(____)
# Print the performance of both predictions and compare
print(____(____[mask], avg_values[mask], squared=False))
print(____(____[mask], predicted_values[mask], squared=False))