시작하기무료로 시작하기

사용자 노드의 차수 중심성 분포

이번 연습 문제와 다음 연습 문제에서는 이전 강의에서 다룬 내용을 마지막으로 복습해 보겠습니다. 과제는 GitHub 협업 네트워크의 이분 그래프 버전에서 각 노드 파티션의 차수 중심성 분포를 그리는 것입니다. 여기서는 'users' 파티션에 대해 진행하고, 다음 연습 문제에서는 'projects' 파티션을 다룹니다.

이전에 작성한 함수 get_nodes_from_partition()가 미리 로드되어 있어요. 다시 상기하면, "차수 중심성(degree centrality)"은 노드의 중요도를 나타내는 지표이며, "차수 중심성 분포"는 그래프의 모든 노드에 대한 차수 중심성 점수 목록을 의미해요. 몇 개의 연습 문제 전, 서코스(circos) 플롯을 만들 때는 저희가 차수 중심성을 계산해 드렸습니다. 이제는 직접 계산해 보세요!

이 연습은 강의의 일부입니다

Python 중급 네트워크 분석

강의 보기

연습 안내

  • matplotlib.pyplotplt로 임포트하세요.
  • 이전 연습 문제에서 만든 get_nodes_from_partition() 함수를 사용해, G'users' 노드에 해당하는 목록을 user_nodes라는 이름으로 가져오세요.
  • nx.degree_centrality() 함수를 사용해 G의 각 노드에 대한 차수 중심성을 계산하고, 결과를 dcs에 저장하세요.
  • 리스트 컴프리헨션을 사용해 user_nodes 각 노드의 차수 중심성을 계산하고, 결과를 user_dcs에 저장하세요.
    • 참고로 dcs는 키가 노드인 딕셔너리예요. 여기서 필요한 노드는 user_nodes에 담겨 있어요. 이 정보를 활용해 사용자 노드의 차수 중심성을 어떻게 얻을 수 있을까요? 반복 변수로는 n을 사용하세요.
  • 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()
코드 편집 및 실행