1. Uczyć się
  2. /
  3. Courses
  4. /
  5. Python으로 시작하는 네트워크 분석

Connected

Exercise

편집 커뮤니티 특성 파악하기

이제까지 배운 BFS 알고리즘과 최대 클리크 개념을 결합해 Arc plot으로 네트워크를 시각화해 보세요.

Github 사용자 협업 네트워크에서 가장 큰 최대 클리크는 부분 그래프 G_lmc에 할당되어 있어요. NetworkX 2.x 이상 버전에서는 G.subgraph(nodelist)가 원본 그래프에 대한 변경 불가능한 뷰만 반환한다는 점에 유의하세요. 변경 가능한 버전을 얻으려면 그래프의 .copy()를 명시적으로 호출해야 합니다.

Instrukcje

100 XP
  • 클리크에서 1단계 떨어진 사용자들을 포함하도록 확장하고, 그 사용자들을 부분 그래프에 추가하세요. 첫 번째 for 루프 안에서:
    • .add_nodes_from()과 .neighbors() 메서드를 사용하여 G의 이웃에서 노드를 가져와 G_lmc에 추가하세요.
    • .add_edges_from() 메서드를 사용해 현재 노드와 그 이웃들 사이의 간선을 G_lmc에 추가하세요. 이를 위해 zip() 함수를 사용해 현재 노드와 각 이웃으로 이루어진 튜플 목록을 만들어야 합니다. zip()의 첫 번째 인자는 [node]*len(list(G.neighbors(node)))가 되고, 두 번째 인자는 해당 node의 이웃입니다.
  • 각 노드의 차수 중심성 점수를 노드 메타데이터에 기록하세요.
    • 두 번째 for 루프에서 nx.degree_centrality(G_lmc)[n]을 G_lmc.nodes[n]['degree centrality']에 할당하면 됩니다.
  • 노드들을 차수 중심성으로 정렬해 Arc plot으로 이 네트워크를 시각화하세요(키워드 인자 sort_by='degree centrality'를 사용하면 됩니다).