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

วิเคราะห์ลักษณะของชุมชนผู้แก้ไข

ในแบบฝึกหัดนี้ จะนำความรู้เกี่ยวกับอัลกอริทึม BFS และแนวคิดของ maximal clique มาผสมผสานกัน เพื่อแสดงผลเครือข่ายด้วย Arc plot

Maximal clique ที่ใหญ่ที่สุดในเครือข่ายการทำงานร่วมกันของผู้ใช้ GitHub ได้ถูกกำหนดให้เป็น subgraph G_lmc แล้ว โปรดทราบว่าใน NetworkX เวอร์ชัน 2.x ขึ้นไป G.subgraph(nodelist) จะคืนค่าเพียง view แบบอ่านอย่างเดียวของกราฟต้นฉบับ จึงต้องเรียก .copy() อย่างชัดเจน เพื่อให้ได้กราฟที่แก้ไขได้

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

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

ดูคอร์ส

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

  • ขยายออกไป 1 ระดับจาก clique แล้วเพิ่มผู้ใช้เหล่านั้นเข้าไปใน subgraph ภายใน for loop แรก:
    • เพิ่มโหนดลงใน G_lmc จากเพื่อนบ้านของ G โดยใช้เมธอด .add_nodes_from() และ .neighbors()
    • ใช้เมธอด .add_edges_from() เพิ่ม edge ลงใน G_lmc ระหว่างโหนดปัจจุบันกับเพื่อนบ้านทุกตัว โดยสร้างรายการ tuple ด้วยฟังก์ชัน zip() ที่ประกอบด้วยโหนดปัจจุบันและเพื่อนบ้านแต่ละตัว อาร์กิวเมนต์แรกของ zip() คือ [node]*len(list(G.neighbors(node))) และอาร์กิวเมนต์ที่สองคือเพื่อนบ้านของ node
  • บันทึกคะแนน degree centrality ของแต่ละโหนดไว้ใน metadata ของโหนดนั้น
    • ทำได้โดยกำหนดค่า nx.degree_centrality(G_lmc)[n] ให้กับ G_lmc.nodes[n]['degree centrality'] ใน for loop ที่สอง
  • แสดงผลเครือข่ายนี้ด้วย Arc plot โดยเรียงโหนดตาม degree centrality (ใช้ keyword argument sort_by='degree centrality')

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

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

# Import necessary modules
from nxviz import arc
import matplotlib.pyplot as plt

# Identify the largest maximal clique: largest_max_clique
largest_max_clique = set(sorted(nx.find_cliques(G), key=lambda x: len(x))[-1])

# Create a subgraph from the largest_max_clique: G_lmc
G_lmc = G.subgraph(largest_max_clique).copy()

# Go out 1 degree of separation
for node in list(G_lmc.nodes()):
    G_lmc.add_nodes_from(____)
    G_lmc.add_edges_from(zip(____, ____))

# Record each node's degree centrality score
for n in G_lmc.nodes():
    ____ = ____

# Create the Arc plot: a
a = ____

# Draw the Arc plot to the screen
a
plt.show()
แก้ไขและรันโค้ด