Confronto tra modelli item-based e user-based
Hai appena visto due diversi approcci KNN. Il primo è l’item-item KNN, in cui usi la media dei \(k\) film più simili che un utente ha già valutato per suggerire il voto di un film che non ha ancora visto. L’altro è l’user-user KNN, in cui usi la media delle valutazioni che i \(k\) utenti più simili hanno dato al film per suggerire quale voto darebbe l’utente target.
Ora confronterai i due e calcolerai quale voto user_002 darebbe a Forrest Gump.
Il codice per il modello user_rating_predictor (che predice in base ai voti dati al film da utenti simili) e per movie_rating_predictor (che predice in base ai voti che questo utente ha dato a film simili) è già impostato per te.
KNeighborsRegressor è già stato importato per te.
Questo esercizio fa parte del corso
Creare motori di raccomandazione in Python
Istruzioni dell'esercizio
- Crea un modello K-nearest neighbors user-user chiamato
user_knn. - Adestra il modello
user_knn, poi effettua la previsione sutarget_user_x. - Allo stesso modo, addestra un modello K-nearest neighbors item-item chiamato
movie_knn, poi effettua la previsione sutarget_movie_x.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))