1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 시작하는 네트워크 분석

Connected

연습 문제

삼각형 관계 식별하기

이제 클리크(clique)에 대해 배웠으니, 이를 활용해 네트워크에서 구조를 찾아볼 차례예요. 가장 먼저 삼각형(triangle)을 살펴봅니다. 삼각형은 가장 단순한 복합 클리크이기 때문에 중요해요. 몇 가지 함수를 작성하면서, 네트워크 알고리즘 뒤에 있는 기본 논리를 익혀 보겠습니다.

Twitter 네트워크에서 각 노드에는 'occupation' 레이블이 있으며, 해당 사용자의 직업이 celebrity, politician, scientist로 구분되어 있어요. 삼각형 찾기 알고리즘의 한 가지 활용 예는 비슷한 직업을 가진 사용자들이 서로 클리크를 형성할 가능성이 더 높은지 확인하는 것입니다.

지침

100 XP
  • itertools에서 combinations를 임포트하세요.
  • 두 개의 매개변수 G와 n을 받아, 주어진 노드가 삼각형 관계에 속하는지 확인하는 함수 is_in_triangle()을(를) 작성하세요.
    • combinations(iterable, n)은 iterable에서 크기가 n인 조합을 반환합니다. 여기서는 list(G.neighbors(n))에서 크기 2인 조합이 필요하므로 유용합니다.
    • 두 노드 간에 엣지가 존재하는지 확인하려면 .has_edge(node1, node2) 메서드를 사용하세요. 엣지가 존재하면 해당 노드는 삼각형 관계에 속하므로 True를 반환해야 합니다.