Vergelijkbaar gewaardeerde films vinden
Net zoals je de similariteit tussen twee films berekende, kun je die ook over alle gebruikers heen berekenen om de meest vergelijkbare film te vinden op basis van hoe gebruikers ze hebben beoordeeld.
De aanpak lijkt op hoe je met content-based filtering werkte.
Je bepaalt de similariteitsscores tussen alle films en zoomt daarna in op de film van interesse door de kolom met de bijbehorende similariteitsscores te isoleren en te sorteren.
movie_ratings_centered is opnieuw geladen. Deze bevat elke film als een rij, met de gecentreerde beoordelingen als waarden.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen in Python
Oefeninstructies
- Bereken de similariteitsmatrix tussen alle films in
movie_ratings_centereden sla die op als similarities. - Verpak de matrix
similaritiesin een DataFrame, met de indexen vanmovie_ratings_centeredals zowel de kolommen als de rijen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)