Zacznij terazZacznij za darmo

Porównanie modeli opartych na przedmiotach i na użytkownikach

Poznałeś już dwa różne podejścia do KNN. Pierwsze to KNN oparty na przedmiotach (item-item KNN), w którym do zaproponowania oceny nieobejrzanego filmu używa się średniej z \(k\) najbardziej podobnych filmów, które użytkownik już ocenił. Drugie podejście to KNN oparty na użytkownikach (user-user KNN), gdzie do oszacowania oceny docelowego użytkownika używa się średniej ocen wystawionych przez \(k\) najbardziej podobnych użytkowników.

Teraz porównasz oba podejścia i obliczysz, jaką ocenę user_002 wystawiłby filmowi Forrest Gump.

Kod dla modelu user_rating_predictor (przewidującego na podstawie ocen podobnych użytkowników) oraz modelu movie_rating_predictor (przewidującego na podstawie ocen wystawionych przez tego użytkownika podobnym filmom) został już częściowo przygotowany.

KNeighborsRegressor został zaimportowany.

To ćwiczenie jest częścią kursu

Budowanie systemów rekomendacji w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz model K-najbliższych sąsiadów oparty na użytkownikach (user-user) o nazwie user_knn.
  • Dopasuj model user_knn, a następnie przewidź wartości dla target_user_x.
  • Analogicznie utwórz model K-najbliższych sąsiadów oparty na przedmiotach (item-item) o nazwie movie_knn, a następnie przewidź wartości dla target_movie_x.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod