始める無料で始める

アイテムベースモデルとユーザーベースモデルの比較

これまでに 2 つの KNN 手法を見てきました。1 つ目はアイテム・アイテム KNN で、ユーザーが評価した映画のうち、最も類似した \(k\) 本の平均を使って、まだ観ていない映画の評価を推定します。もう 1 つはユーザー・ユーザー KNN で、対象の映画に対して、最も類似した \(k\) 人のユーザーが付けた評価の平均を使って、ターゲットユーザーの評価を推定します。

ここではこの 2 つを比較し、user_002Forrest 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))
コードを編集して実行