找到喜好相近的電影
就像你先前計算兩部電影之間的相似度一樣,你也可以在所有使用者之間計算,根據使用者對電影的評分,找出與另一部電影最相似的那一部。
這個方法和你在內容式過濾的做法很類似。
你會先計算所有電影彼此之間的相似度分數,接著聚焦到目標電影,將包含其相似度分數的欄位取出並排序。
movie_ratings_centered 已再次載入,其中每一列代表一部電影,值為其置中後的評分。
本練習屬於課程
用 Python 建立推薦引擎
練習說明
- 計算
movie_ratings_centered中所有電影之間的相似度矩陣,並將其儲存為 similarities。 - 將
similarities矩陣包裝成一個 DataFrame,且列與欄都使用movie_ratings_centered的索引。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)