比較推薦方法
在本課程中,你已經用多種方法(基礎平均評分、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))