逐步走過 K-nearest neighbors
你剛剛看到可以如何利用 K-nearest neighbors,根據(相似)群體的智慧來推測某人對某個項目的評分。 在這個練習中,你會自己一步一步操作這個流程,以確保你清楚理解其運作方式。
為了幫你上手,由於你之前已多次建立相似度矩陣,這一步已替你完成,並以 DataFrame 形式載入為 user_similarities 的使用者相似度矩陣。
這個矩陣以每位使用者作為列與欄,兩者交會處是對應的相似度分數。
在本練習中,你會使用 user_001 的相似度分數,找出他們的最近鄰,並根據這些鄰居對某部電影的評分,推測如果 user_001 看過該片,可能會給出的評分。
本練習屬於課程
用 Python 建立推薦引擎
練習說明
- 從
ordered_similarities中擷取前 10 名使用者,取得User_A的 10 位最近鄰 ID,並將其儲存為nearest_neighbors。 - 從
user_ratings_table擷取nearest_neighbors這些使用者給出的評分,並儲存為neighbor_ratings。 - 計算這些使用者對電影
Apollo 13 (1995)的平均評分,用來推測如果User_A看過這部片,可能會給出的評分。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Isolate the similarity scores for user_1 and sort
user_similarity_series = user_similarities.loc['user_001']
ordered_similarities = user_similarity_series.sort_values(ascending=False)
# Find the top 10 most similar users
nearest_neighbors = ordered_similarities[1:11].____
# Extract the ratings of the neighbors
neighbor_ratings = user_ratings_table.____(nearest_neighbors)
# Calculate the mean rating given by the users nearest neighbors
print(neighbor_ratings['Apollo 13 (1995)'].____())