1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Phân tích Mạng bằng Python

Connected

Bài tập

Phân tích đặc trưng cộng đồng chỉnh sửa

Giờ bạn sẽ kết hợp những gì đã học về thuật toán BFS và khái niệm clique tối đại để trực quan hóa mạng lưới bằng Arc plot.

Clique tối đại lớn nhất trong mạng hợp tác người dùng Github đã được gán vào đồ thị con G_lmc. Lưu ý rằng với NetworkX phiên bản 2.x trở lên, G.subgraph(nodelist) chỉ trả về một view bất biến của đồ thị gốc. Ta phải yêu cầu rõ ràng .copy() của đồ thị để nhận được phiên bản có thể thay đổi.

Hướng dẫn

100 XP
  • Mở rộng thêm 1 bậc kết nối từ clique và thêm những người dùng đó vào đồ thị con. Bên trong vòng lặp for đầu tiên:
    • Thêm các node vào G_lmc từ các hàng xóm của G bằng các phương thức .add_nodes_from() và .neighbors().
    • Dùng phương thức .add_edges_from() để thêm các cạnh vào G_lmc giữa node hiện tại và tất cả hàng xóm của nó. Để làm điều này, bạn sẽ tạo một danh sách các bộ tuple dùng hàm zip() gồm node hiện tại và từng hàng xóm của nó. Đối số đầu tiên truyền vào zip() nên là [node]*len(list(G.neighbors(node))), và đối số thứ hai là các hàng xóm của node.
  • Ghi lại điểm độ trung tâm bậc của mỗi node trong siêu dữ liệu của node.
    • Thực hiện bằng cách gán nx.degree_centrality(G_lmc)[n] cho G_lmc.nodes[n]['degree centrality'] trong vòng lặp for thứ hai.
  • Trực quan hóa mạng này bằng Arc plot và sắp xếp các node theo độ trung tâm bậc (bạn có thể làm điều này bằng đối số từ khóa sort_by='degree centrality').