Item-based en user-based modellen vergelijken
Je hebt nu twee verschillende KNN-benaderingen bekeken. De eerste was item-item KNN, waarbij je het gemiddelde neemt van de \(k\) meest vergelijkbare films die een gebruiker heeft beoordeeld om een beoordeling te suggereren voor een film die hij of zij nog niet heeft gezien. De andere benadering was user-user KNN, waarbij je het gemiddelde gebruikt van de beoordelingen die de \(k\) meest vergelijkbare gebruikers aan de film gaven om te voorspellen welke beoordeling de doelgroepgebruiker de film zou geven.
Nu ga je de twee vergelijken en berekenen welke beoordeling user_002 aan Forrest Gump zou geven.
De code voor het user_rating_predictor-model (dat voorspelt op basis van wat vergelijkbare gebruikers de film gaven) en de movie_rating_predictor (die voorspelt op basis van welke beoordelingen deze gebruiker aan vergelijkbare films gaf) is alvast voor je gestart.
KNeighborsRegressor is al voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen in Python
Oefeninstructies
- Maak een user-user K-nearest neighbors-model met de naam
user_knn. - Fit het
user_knn-model en voorspel daarna optarget_user_x. - Fit op dezelfde manier een item-item K-nearest neighbors-model met de naam
movie_knnen voorspel daarna optarget_movie_x.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))