Znajdowanie filmów o podobnych ocenach
Podobnie jak obliczono podobieństwo między dwoma filmami, można je wyznaczyć dla wszystkich użytkowników – w ten sposób znajdziesz film najbardziej zbliżony do wybranego na podstawie wystawionych ocen.
Podejście jest analogiczne do tego, które stosowano w przypadku filtrowania opartego na treści.
Wyznaczysz współczynniki podobieństwa między wszystkimi filmami, a następnie skupisz się na wybranym filmie – wyodrębniając i sortując kolumnę zawierającą jego wartości podobieństwa.
movie_ratings_centered został ponownie wczytany. Zawiera filmy jako wiersze, a ich wycentrowane oceny jako wartości.
To ćwiczenie jest częścią kursu
Budowanie systemów rekomendacji w Pythonie
Instrukcje do ćwiczenia
- Oblicz macierz podobieństwa między wszystkimi filmami w
movie_ratings_centeredi zapisz ją jakosimilarities. - Opakuj macierz
similaritiesw DataFrame, używając indeksówmovie_ratings_centeredjako kolumn i wierszy.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)