開始使用免費開始

比較以項目為基礎與以使用者為基礎的模型

你已經看過兩種不同的 KNN 作法。第一種是項目-項目 KNN:對於使用者尚未看過的電影,用該使用者已評分之中、與目標電影最相似的 \(k\) 部電影的平均評分作為建議分數。另一種是使用者-使用者 KNN:用與目標使用者最相似的 \(k\) 位使用者對該電影的評分平均,來推測目標使用者可能給出的評分。

現在,來比較這兩種方法,並計算 user_002 會給 Forrest Gump 的評分。

user_rating_predictor 模型(根據相似使用者對該電影的評分來做預測)以及 movie_rating_predictor(根據此使用者對相似電影的評分來做預測)的程式碼都已為你起好頭。

KNeighborsRegressor 已為你匯入。

本練習屬於課程

用 Python 建立推薦引擎

檢視課程

練習說明

  • 建立一個使用者-使用者的 K-nearest neighbors 模型,命名為 user_knn。
  • 擬合 user_knn 模型,然後對 target_user_x 進行預測。
  • 以同樣方式,擬合一個項目-項目的 K-nearest neighbors 模型,命名為 movie_knn,然後對 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))
編輯並執行程式碼