เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เมตริกความคล้ายคลึงของผู้ใช้

หลังจากเขียนฟังก์ชันเพื่อคำนวณเซตของโหนดที่ใช้ร่วมกันระหว่างสองโหนดแล้ว คราวนี้จะได้เขียนฟังก์ชันเพื่อคำนวณเมตริกความคล้ายคลึงระหว่างผู้ใช้สองคน ได้แก่ จำนวนโปรเจกต์ที่ผู้ใช้สองคนมีร่วมกัน หารด้วยจำนวนโหนดทั้งหมดในพาร์ติชันอื่น ซึ่งสามารถนำไปใช้ค้นหาผู้ใช้ที่มีความคล้ายคลึงกันได้

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์เครือข่ายระดับกลางใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เติมฟังก์ชัน user_similarity() ให้สมบูรณ์เพื่อคำนวณความคล้ายคลึงระหว่าง user1 และ user2
    • ใช้คำสั่ง assert เพื่อตรวจสอบว่า user1 และ user2 อยู่ในพาร์ติชัน 'users'
    • ใช้ฟังก์ชัน shared_partition_nodes() จากแบบฝึกหัดก่อนหน้าเพื่อดึงเซตของโหนดที่ user1 และ user2 มีร่วมกัน
    • คืนค่าเศษส่วนของโหนดในพาร์ติชัน projects กล่าวคือ ให้หารจำนวน shared_nodes ด้วยจำนวนโหนดทั้งหมดในพาร์ติชัน 'projects'
  • คำนวณคะแนนความคล้ายคลึงระหว่างผู้ใช้ 'u4560' และ 'u1880' โดย:
    • ดึงโหนดในพาร์ติชัน 'projects' ก่อนโดยใช้ฟังก์ชัน get_nodes_from_partition()
    • จากนั้นใช้ฟังก์ชัน user_similarity() เพื่อคำนวณคะแนน

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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)
แก้ไขและรันโค้ด