2

그래프 프로젝션

그래프 알고리즘으로 얻는 인사이트

학습 목표
  • GDS 알고리즘 실행의 세 단계를 안다
  • 분석용 부분 그래프를 설계하는 관점을 세운다

GDS — 표가 못 보는 구조를 보는 세 개의 렌즈

코스 2에서 Docker 환경에 장착한 GDS(Graph Data Science)로 세 가지 구조 분석을 합니다.

공통 절차는 이렇습니다.

그래프 프로젝션(분석용 부분 그래프 추출) → 알고리즘 실행 → 결과를 그래프에 되쓰기

프로젝션이 먼저인 이유

알고리즘은 전체 그래프에 그냥 돌리는 것이 아닙니다. 무엇을 노드로 보고 무엇을 엣지로 볼지를 분석 목적에 맞게 새로 정의합니다.

예를 들어 항만 네트워크를 분석하려면 — Port를 노드로, "한 항차가 A항만 다음 B항만에 기항했다"는 사실을 엣지로 봐야 합니다. 원래 그래프에서 Port와 Port는 직접 연결돼 있지 않고 PortCall을 거쳐 이어지는데, 프로젝션이 그 경로를 하나의 엣지로 접어 줍니다.

CALL gds.graph.project.cypher('portNet',
  'MATCH (p:Port) RETURN id(p) AS id',
  'MATCH (a:Port)<-[:AT_PORT]-(pc1:PortCall)-[:PRECEDED_BY]->(pc2:PortCall)-[:AT_PORT]->(b:Port)
   RETURN id(b) AS source, id(a) AS target, count(*) AS weight');

weight에 기항 횟수를 실었습니다. 무엇을 가중치로 삼느냐가 분석 결과를 바꿉니다 — 횟수 대신 물동량이나 평균 연결 시간을 실으면 다른 구조가 보입니다.

💡 프로젝션 설계가 곧 "무엇을 보고 싶은가"의 선언입니다. 알고리즘을 고르기 전에 이것부터 정하세요.

용어