Từng bước với K-nearest neighbors
Bạn vừa thấy cách K-nearest neighbors có thể suy ra việc một người sẽ chấm điểm một mục như thế nào dựa trên “trí tuệ đám đông” của những người dùng tương tự. Trong bài tập này, bạn sẽ tự mình đi qua quy trình đó để nắm chắc cách hoạt động.
Để bạn bắt đầu nhanh, vì trước đây bạn đã nhiều lần tạo ma trận độ tương đồng, bước đó đã được thực hiện sẵn: ma trận tương đồng người dùng được gói trong một DataFrame và nạp vào biến user_similarities.
Ma trận này có mỗi người dùng là hàng và cột, và tại giao điểm là điểm tương đồng tương ứng.
Trong bài này, bạn sẽ làm việc với điểm tương đồng của user_001, tìm những hàng xóm gần nhất của họ và, dựa trên các điểm số mà những hàng xóm đó đã chấm cho một bộ phim, suy ra điểm số mà user_001 có thể chấm nếu họ xem phim đó.
Bài tập này là một phần của khóa học
Xây dựng Recommendation Engine bằng Python
Hướng dẫn bài tập
- Tìm ID của 10 hàng xóm gần nhất của
User_Abằng cách lấy top 10 người dùng trongordered_similaritiesvà lưu vàonearest_neighbors. - Trích xuất các điểm số mà những người dùng trong
nearest_neighborsđã chấm từuser_ratings_tablevà lưu vàoneighbor_ratings. - Tính điểm trung bình mà các người dùng này đã chấm cho phim
Apollo 13 (1995)để suy ra điểm số màUser_Acó thể chấm nếu họ đã xem.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)'].____())