1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích mạng nâng cao với Python

Connected

Bài tập

Tính phép chiếu (projection)

Giờ là lúc bạn thực hành tính phép chiếu của một đồ thị hai phía (bipartite) lên các nút của một trong hai phần (partition). Bài này giúp bạn luyện chuyển đổi giữa phiên bản bipartite của một đồ thị và các phép chiếu unipartite của nó. Hãy nhớ từ video rằng “phép chiếu” của một đồ thị lên một partition là độ kết nối giữa các nút trong partition đó, có điều kiện theo các kết nối tới các nút ở partition còn lại. Cụ thể hơn, bạn có thể hình dung như “độ kết nối của khách hàng dựa trên các mặt hàng mua chung”.

Để bạn bắt đầu, đây là gợi ý về list comprehension. List comprehension có thể kèm điều kiện, nên nếu bạn muốn lọc đồ thị theo một kiểu nút nhất định, bạn có thể làm: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].

Hướng dẫn

100 XP
  • Chuẩn bị nodelist people bằng list comprehension. Nếu từ khóa 'bipartite' của một nút n trong G bằng 'people', thì nút đó phải thuộc nodelist.
  • Chuẩn bị nodelist clubs bằng cách lặp qua các nút của G, bao gồm cả metadata. Ở đây, lưu ý rằng bạn phải kiểm tra liệu từ khóa 'bipartite' của dictionary metadata d có bằng 'clubs' hay không. Lưu ý: Đây chỉ là một cách khác để tạo nodelist. Bạn không nhất thiết phải lặp qua metadata — bạn có thể làm giống như khi tạo nodelist people, chỉ khác là kiểm tra 'clubs'. Chúng tôi yêu cầu bạn dùng cách còn lại ở đây để bạn luyện cả hai cách.
  • Dùng nx.bipartite.projected_graph() để tính phép chiếu cho people và clubs. Lưu kết quả lần lượt vào peopleG và clubsG.
    • Hàm này nhận hai đối số: đồ thị G và nodelist.