알고리즘 산책 · 01

k-평균 산책

n개의 점을 가까운 평균(centroid) 주위로 묶는 가장 유명한 군집 알고리즘 ― "할당 → 평균 갱신" 두 단계를 직접 클릭하며 5분 만에 익혀봅니다.

▶ 직접 해보기

1. 무엇을 푸는 알고리즘인가

k-평균은 n개의 점을 k개의 무리(cluster)로 나눕니다. 각 점은 자기와 가장 가까운 중심점(centroid)에 속합니다. 그 결과 평면이 centroid를 기준으로 한 영역들로 잘립니다(보로노이 다이어그램). ¹

한 줄로: "비슷한 점끼리 묶고, 그 가운데 점을 평균으로 잡는 일을 반복" 합니다.

현재 상태 미리보기

2. 한 번에 따라가 보기

버튼을 한 번씩 눌러보세요. 한꺼번에 돌리지 말고 "할당""평균 갱신"이 각각 어떻게 다른지 직접 보는 것이 핵심입니다.

정규화 좌표 [0,1] x [0,1] 평면에서 데이터 점(작은 원)과 centroid(큰 원)가 표시됩니다. centroid 색에 따라 평면이 옅게 음영 처리됩니다(보로노이 영역).

시작 버튼을 누르세요.

① 데이터셋
② 클러스터 수 k = 3
③ 초기 centroid 위치

"직접 클릭"을 고른 뒤 캔버스를 누르면 그 자리에 centroid가 놓입니다.

④ 단계 실행
⑤ 상태
반복
#0
SSE
0
단계
대기

3. 왜 멈출 수 있는 알고리즘인가

"할당"과 "평균 갱신" 두 단계는 모두 SSE(Sum of Squared Errors)를 줄이는 방향으로만 움직입니다. 그래서 SSE는 매 단계 단조 감소합니다. 가능한 클러스터 배치 경우의 수는 유한하므로, 알고리즘은 결국 멈춥니다. ²

한국어 한 줄 요약: "항상 줄어드는 값이 있는데 경우의 수가 유한하면, 반드시 끝난다".

SSE 단조 감소 (주황=할당, 파랑=평균 갱신)

4. 못 푸는 경우

k-평균은 비슷한 크기·둥근 모양의 무리를 잘 찾습니다. 반대로 위 옆의 스마일처럼 곡선/얼굴/링 같은 비선형 모양에서는 알고리즘이 "원하는 부분"을 제대로 묶지 못합니다.²

이런 경우엔 DBSCAN, 가우시안 혼합 모형(EM), 스펙트럴 클러스터링 같은 다른 도구가 필요합니다.

스마일 데이터에 k=4 — 의도대로 잘리지 않음

5. 어디에 쓰이나 (대중 앱 사례)

📷 사진 색감 압축

Instagram·PNG/GIF 최적화기는 수백만 색을 k개 대표색으로 줄여 용량을 줄입니다. (이미지 색 양자화)¹

🛒 고객 군집화

구매 행동·연령·지역이 비슷한 고객을 같은 무리로 묶어 같은 쿠폰을 보냅니다. (시장 세분화)¹

📱 카메라 보케

색·질감이 비슷한 픽셀을 묶어 인물과 배경을 분리합니다. (컴퓨터 비전)¹

🌌 별 종류 분류

APOGEE·Gaia 천체 관측 데이터에서 광도·온도·색·화학 조성으로 별을 분류합니다. ¹

🧬 유전자 패턴

발현 패턴이 비슷한 유전자끼리 묶어 동시-조절 그룹을 발견합니다. (생물정보학)¹

🔎 의미 군집

단어/문장 임베딩을 묶어 의미 카테고리를 만들거나 named-entity 인식에 활용됩니다.¹