Jämföra objektbaserade och användarbaserade modeller
Du har nu undersökt två olika KNN-metoder. Den första var objekt-objekt-KNN, där du använder medelvärdet av de \(k\) mest liknande filmer som en användare har betygsatt för att förutsäga ett betyg för en film de inte sett. Den andra metoden var användare-användare-KNN, där du använder medelvärdet av de betyg som de \(k\) mest liknande användarna gav filmen för att förutsäga vilket betyg målanvändaren skulle ge.
Nu ska du jämföra de två och beräkna vilket betyg user_002 skulle ge Forrest Gump.
Koden för modellen user_rating_predictor (som förutsäger baserat på vad liknande användare gav filmen) och movie_rating_predictor (som förutsäger baserat på vilka betyg den här användaren gav liknande filmer) har påbörjats åt dig.
KNeighborsRegressor har redan importerats.
Den här övningen är en del av kursen
Bygga rekommendationsmotorer i Python
Övningsinstruktioner
- Skapa en användare-användare-modell med K-närmaste grannar som kallas
user_knn. - Träna modellen
user_knnoch gör sedan en förutsägelse påtarget_user_x. - Träna på samma sätt en objekt-objekt-modell med K-närmaste grannar som kallas
movie_knn, och gör sedan en förutsägelse påtarget_movie_x.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))