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에 기항 횟수를 실었습니다. 무엇을 가중치로 삼느냐가 분석 결과를 바꿉니다 — 횟수 대신 물동량이나 평균 연결 시간을 실으면 다른 구조가 보입니다.
💡 프로젝션 설계가 곧 "무엇을 보고 싶은가"의 선언입니다. 알고리즘을 고르기 전에 이것부터 정하세요.