둘 다 \(k\)를 정하고 “가장 가까운 대표에 넣기 → 대표 고치기”를 되풀이한다. 가르는 질문은 “대표가 실제 자료점이어야 하는가”다. 그 답이 이상치에 대한 견고함, 쓸 수 있는 거리, 계산량을 함께 정한다.
어느 쪽일까
C1 (a) 수백만 명의 (키, 몸무게, 나이) 자료를 빠르게 다섯 무리로 나눈다. (b) 고객 500명의 구매 기록을 몇 무리로 나누고, 무리마다 “대표 고객 한 명”을 마케팅 팀에 보여 준다. 어느 쪽인가?
답: (a) k-평균. 수치 자료이고 크기가 커서 빠른 평균 계산이 유리하다. (b) k-메도이드. 대표가 실제 고객이라 보여 줄 수 있고, 자료가 작아 \(m^2\) 계산도 감당된다.
C2 (c) 자료에 입력 실수로 생긴 아주 큰 값이 섞여 있다. (d) 단백질 서열(문자열)을 편집 거리로 묶는다. 어느 쪽인가?
답: (c) k-메도이드. 평균은 이상치에 끌리지만 메도이드는 실제 점 중에서 골라 덜 흔들린다. (d) k-메도이드. 문자열의 평균은 정의되지 않고, k-메도이드는 아무 비유사도로도 돈다.
결정적 차이
두 방법을 나란히 놓으면 이렇다.
| k-평균 | k-메도이드 | |
|---|---|---|
| 대표 | 평균(중심). 실제 점이 아닐 수 있다 | 메도이드. 자료 속 실제 점 |
| 이상치 | 민감하다(평균이 쉽게 끌린다) | 더 견고하다 |
| 거리 | (제곱) 유클리드 | 아무 비유사도 |
| 계산 | 효율적, 큰 자료에 쓴다 | 비싸다(거리 계산이 많다) |
| 공통 한계 | \(k\)를 미리 정한다, 하드 배정 | 같다 |
“거리” 줄에서 두 방법이 갈린다. k-메도이드는 점과 점 사이의 거리만 재고 평균을 내지 않아서 아무 비유사도로도 돌아간다. k-평균은 평균이 거리 제곱 합을 가장 작게 만든다는 성질에 기대므로 (제곱) 유클리드 거리에 묶인다(k-메도이드)1. 선택을 가르는 줄은 “이상치”와 “계산”이다.
검증: 같은 자료(1, 2, 3, 8, 9, 10, 25)에서 k-평균의 중심 13, k-메도이드의 메도이드 9 — 25_k-means_impl.py, 26_k-medoids_impl.py
둘 다 아닐 때
C3 둘 다 맞지 않는 상황 두 가지와 그때의 선택지를 쓰라.
답: ① 군집이 길쭉한 타원이거나 서로 겹쳐, 점마다 “어느 군집일 확률”이 필요할 때 → 가우스 혼합 모델. ② 군집 수를 모르고 고리·나선처럼 모양이 제멋대로이며 잡음이 섞였을 때 → DBSCAN.
-
k-메도이드가 편집 거리로도 돌아가는 것은 26_k-medoids_impl.py로 확인했다. ↩