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

การกระจาย degree centrality ของโหนดผู้ใช้

ในแบบฝึกหัดนี้และแบบฝึกหัดถัดไป เราจะทบทวนเนื้อหาจากคอร์สก่อนหน้าอีกครั้ง โจทย์คือการพล็อตการกระจาย degree centrality ของโหนดแต่ละ partition ในเครือข่ายความร่วมมือบน GitHub เวอร์ชัน bipartite ในแบบฝึกหัดนี้จะทำกับ partition 'users' และในแบบฝึกหัดถัดไปจะทำกับ partition 'projects'

ฟังก์ชัน get_nodes_from_partition() ที่เคยเขียนไว้ได้โหลดให้แล้ว เพื่อเป็นการทบทวน "degree centrality" คือตัวชี้วัดความสำคัญของโหนด และ "การกระจาย degree centrality" คือรายการคะแนน degree centrality ของโหนดทั้งหมดในกราฟ ในแบบฝึกหัดก่อนหน้าตอนที่สร้าง circos plot เราได้คำนวณค่า degree centrality ให้ ตอนนี้ถึงเวลาลองทำด้วยตัวเองแล้ว!

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

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

ดูคอร์ส

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

  • Import matplotlib.pyplot ในชื่อ plt
  • ใช้ฟังก์ชัน get_nodes_from_partition() จากแบบฝึกหัดก่อนหน้าเพื่อดึงรายการโหนดของ 'users' ใน G แล้วเก็บไว้ในตัวแปร user_nodes
  • ใช้ฟังก์ชัน nx.degree_centrality() คำนวณค่า degree centrality ของแต่ละโหนดใน G แล้วเก็บผลลัพธ์ไว้ในตัวแปร dcs
  • ใช้ list comprehension คำนวณค่า degree centrality ของแต่ละโหนดใน user_nodes แล้วเก็บผลลัพธ์ไว้ในตัวแปร user_dcs
    • จำไว้ว่า dcs คือ dictionary ที่มีโหนดเป็น key โหนดที่ต้องการอยู่ใน user_nodes ลองคิดดูว่าจะใช้ข้อมูลนี้ดึงค่า degree centrality ของโหนดผู้ใช้ได้อย่างไร โดยใช้ n เป็น iterator variable
  • พล็อตฮิสโตแกรมของการกระจาย degree ของผู้ใช้ด้วย plt.hist() โดยส่ง user_dcs เป็นอาร์กิวเมนต์

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

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

# Import matplotlib
____

# Get the 'users' nodes: user_nodes
user_nodes = ____

# Compute the degree centralities: dcs
dcs = ____

# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]

# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()
แก้ไขและรันโค้ด