การกระจาย 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()