Trouver des films aimés de manière similaire
Tout comme vous avez calculé la similarité entre deux films, vous pouvez l’estimer sur l’ensemble des utilisateurs pour trouver le film le plus proche d’un autre en fonction de la manière dont les utilisateurs les ont notés.
L’approche est proche de celle utilisée pour le filtrage par le contenu.
Vous allez d’abord calculer les scores de similarité entre tous les films, puis vous focaliser sur le film qui vous intéresse en isolant et en triant la colonne qui contient ses scores de similarité.
movie_ratings_centered a de nouveau été chargé : chaque film est une ligne et les notes centrées sont stockées comme valeurs.
Cet exercice fait partie du cours
Créer des moteurs de recommandation en Python
Instructions
- Calculez la matrice de similarité entre tous les films de
movie_ratings_centeredet stockez-la dans similarities. - Encapsulez la matrice
similaritiesdans un DataFrame, en utilisant les index demovie_ratings_centeredcomme colonnes et comme lignes.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)