Trovare film apprezzati in modo simile
Proprio come hai calcolato la similarità tra due film, puoi calcolarla su tutti gli utenti per trovare il film più simile a un altro in base a come gli utenti li hanno valutati.
L'approccio è simile a quello usato con il content-based filtering.
Troverai i punteggi di similarità tra tutti i film e poi ti concentrerai sul film di interesse isolando e ordinando la colonna che contiene i suoi punteggi di similarità.
movie_ratings_centered è stato nuovamente caricato: contiene ogni film come riga e le valutazioni centrate come valori.
Questo esercizio fa parte del corso
Creare motori di raccomandazione in Python
Istruzioni dell'esercizio
- Calcola la matrice di similarità tra tutti i film in
movie_ratings_centerede salvala come similarities. - Incapsula la matrice
similaritiesin un DataFrame, usando gli indici dimovie_ratings_centeredcome colonne e righe.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
from sklearn.metrics.pairwise import cosine_similarity
# Generate the similarity matrix
similarities = ____(____)
# Wrap the similarities in a DataFrame
cosine_similarity_df = ____.____(____, index=____.____, columns=____.____)
# Find the similarity values for a specific movie
cosine_similarity_series = cosine_similarity_df.loc['Star Wars: Episode IV - A New Hope (1977)']
# Sort these values highest to lowest
ordered_similarities = cosine_similarity_series.sort_values(ascending=False)
print(ordered_similarities)