Thước đo độ tương đồng giữa người dùng
Sau khi bạn đã viết một hàm để tính tập các nút được chia sẻ giữa hai nút, giờ bạn sẽ viết một hàm để tính một thước đo độ tương đồng giữa hai người dùng: số dự án được chia sẻ giữa hai người dùng chia cho tổng số nút ở partition còn lại. Thước đo này có thể được dùng để tìm những người dùng giống nhau.
Bài tập này là một phần của khóa học
Phân tích mạng nâng cao với Python
Hướng dẫn bài tập
- Hoàn thiện hàm
user_similarity()để tính độ tương đồng giữauser1vàuser2.- Dùng các câu lệnh
assertđể kiểm trauser1vàuser2thuộc partition'users'. - Dùng hàm
shared_partition_nodes()bạn đã viết ở bài trước để lấy tập các nút dùng chung giữa hai người dùnguser1vàuser2. - Trả về tỉ lệ trên partition
projects. Cụ thể, chia số lượngshared_nodescho tổng số nút trong partition'projects'.
- Dùng các câu lệnh
- Tính điểm tương đồng giữa hai người dùng
'u4560'và'u1880'. Thực hiện như sau:- Trước tiên lấy các nút trong partition
'projects'bằng hàmget_nodes_from_partition()của bạn. - Sau đó dùng hàm
user_similarity()để tính điểm.
- Trước tiên lấy các nút trong partition
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.
def user_similarity(G, user1, user2, proj_nodes):
# Check that the nodes belong to the 'users' partition
____ G.nodes[____]['bipartite'] == '____'
____ G.nodes[____]['bipartite'] == '____'
# Get the set of nodes shared between the two users
shared_nodes = ____
# Return the fraction of nodes in the projects partition
return len(____) / len(____)
# Compute the similarity score between users 'u4560' and 'u1880'
project_nodes = ____
similarity_score = ____
print(similarity_score)