25분
유사도 알고리즘 비교
Day 3: 유사도 알고리즘
유사도 알고리즘 비교
그래프 알고리즘 > Day 3: 유사도 알고리즘
학습 목표
Jaccard, Overlap, Cosine 차이 이해 상황별 알고리즘 선택 기준 Node Similarity 파라미터 이해
유사도 알고리즘 비교
Jaccard Similarity
공식
에디터 로딩 중...
예시
에디터 로딩 중...
특징
| 장점 | 단점 |
|---|---|
| 직관적 | 가중치 무시 |
| 계산 빠름 | 집합 크기 민감 |
| 이진 데이터에 적합 | 희소 데이터에서 0 많음 |
GDS 코드
에디터 로딩 중...
Overlap Coefficient
공식
에디터 로딩 중...
Jaccard vs Overlap
에디터 로딩 중...
활용
- 부분 집합 관계 탐지
- 크기가 다른 집합 비교
Cosine Similarity
공식
에디터 로딩 중...
예시: 평점 데이터
에디터 로딩 중...
특징
| 장점 | 단점 |
|---|---|
| 가중치 고려 | 계산 복잡 |
| 크기 정규화 | 희소 벡터 문제 |
| 평점 데이터에 적합 | 0 값 해석 애매 |
GDS 코드
에디터 로딩 중...
Node Similarity 알고리즘
GDS의 gds.nodeSimilarity는 다양한 옵션을 제공:
핵심 파라미터
| 파라미터 | 설명 |
|---|---|
| similarityMetric | JACCARD, OVERLAP, COSINE |
| topK | 노드당 최대 K개 결과 |
| similarityCutoff | 최소 유사도 임계값 |
| topN | 전체 상위 N개 |
| degreeCutoff | 최소 연결 수 |
예시
에디터 로딩 중...
K-Nearest Neighbors (KNN)
개념
각 노드에 대해 가장 유사한 K개 이웃을 찾음
GDS 코드
에디터 로딩 중...
Node Similarity vs KNN
| 항목 | Node Similarity | KNN |
|---|---|---|
| 기반 | 관계 구조 (공유 이웃) | 노드 속성 |
| 데이터 | 이분 그래프 | 속성 벡터 |
| 계산 | 이웃 비교 | 속성 거리 |
알고리즘 선택 가이드
에디터 로딩 중...