好みが近い映画を見つける
2本の映画同士の類似度を計算したのと同様に、全ユーザーの評価を使って、ある映画に最も似ている別の映画を見つけることができます。
やり方はコンテンツベースフィルタリングのときとよく似ています。
まず全映画同士の類似度スコアを計算し、その後、関心のある映画の列(その映画との類似度スコアが入った列)を取り出して並べ替え、深掘りします。
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)