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
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 dlatarget_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 dlatarget_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))