開始使用免費開始

逐步走過 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)'].____())
編輯並執行程式碼