모두의 AI
머신러닝AI논문
로딩 중…

배우기

🏅내 업적

Ch.10

K-평균 군집화 (K-Means): 정답 없이 끼리끼리 묶기

정답(라벨) 없이 데이터만 보고 비슷한 것끼리 묶는 비지도학습의 대표 알고리즘입니다. Ch01에서 배운 '비지도학습'이 실제로 어떻게 동작하는지, 거리를 기준으로 K개의 그룹(군집)을 만드는 K-Means를 통해 개념 → 직관 → 수식 → 실전 순으로 알아봅니다. KNN(Ch02)에서 썼던 거리 공식을 다시 쓰고, '끼리끼리 묶기'를 반복할수록 더 뚜렷한 군집이 만들어지는 과정을 시각화와 함께 배웁니다.

챕터별 머신러닝 도식화

챕터를 선택하면 아래 도식이 해당 챕터 내용으로 바뀌어요. 머신러닝 흐름을 한눈에 보세요.

가장 가까운 중심에 점을 묶고, 중심을 소속 점들의 평균으로 옮기며 반복합니다.

① 데이터 — 라벨 없는 점들이 특성 공간에 흩어져 있음

점: 데이터

K-평균 군집화: 정답 없이 끼리끼리 묶기

K-Means란? 정답 없이 거리로 끼리끼리 묶기 — 라벨 yyy가 전혀 주어지지 않은 데이터 x1,x2,…\mathbf{x}_1, \mathbf{x}_2, \ldotsx1​,x2​,…만 있을 때, 가장 가까운 것끼리 K개의 그룹으로 나누는 알고리즘입니다. '가깝다'는 기준은 Ch02 KNN에서처럼 유클리드 거리 d(x,μ)=∑j(xj−μj)2d(\mathbf{x}, \boldsymbol{\mu}) = \sqrt{\sum_j (x_j - \mu_j)^2}d(x,μ)=∑j​(xj​−μj​)2​를 사용합니다. 각 그룹은 한 개의 대표점(중심, centroid) μk\boldsymbol{\mu}_kμk​로 요약되고, 반복적으로 '점을 가장 가까운 중심에 배정' → '각 군집의 점들 평균으로 중심 갱신'을 하여 군집이 안정될 때까지 진행합니다.
K는 '몇 개의 그룹으로 나눌지'를 정하는 수 — K-Means에서는 군집 개수 K를 사람이 미리 정해 줍니다. K=2면 두 덩어리, K=3이면 세 덩어리로 나뉩니다. 정답 라벨이 없기 때문에 '어떤 군집이 정답인가'는 알 수 없고, 단지 '비슷한 것끼리 묶인 결과'만 얻습니다. 실무에서는 K를 바꿔 가며 결과를 보고, 도메인 지식이나 엘보우 법·실루엣 점수 등으로 적절한 K를 고릅니다.
목표: 군집 내 거리 합(SSE) 최소화 — 알고리즘이 최소화하려는 것은 왜곡(SSE, Sum of Squared Errors) J=∑k=1K∑i∈Ck∥xi−μk∥2J = \sum_{k=1}^K \sum_{i \in C_k} \|\mathbf{x}_i - \boldsymbol{\mu}_k\|^2J=∑k=1K​∑i∈Ck​​∥xi​−μk​∥2 입니다. 즉, 각 점이 자기 군집의 중심과 얼마나 가까운지의 제곱합을 줄이는 것입니다. 중심 갱신 공식 μk=1∣Ck∣∑i∈Ckxi\boldsymbol{\mu}_k = \frac{1}{|C_k|}\sum_{i \in C_k} \mathbf{x}_iμk​=∣Ck​∣1​∑i∈Ck​​xi​는 '그 군집에 속한 점들의 좌표 평균'으로, 이렇게 옮기면 해당 군집의 SSE가 줄어듭니다.
수식이 부담스럽다면 — 거리 공식은 '한 점과 한 중심 사이의 길이'를 재는 것이고, SSE JJJ는 '군집이 얼마나 뭉쳐 있는지'를 숫자로 잡은 것입니다. 중심 갱신식은 말 그대로 '그 군집에 속한 점들 좌표의 평균'을 구하는 식이라, 단계만 따라가면 자연스럽게 읽히도록 아래 수식 설명에서 기호별로 풀어 썼습니다.

왜 중요한지

Ch01 비지도학습의 대표 사례 — Ch01에서 '라벨 없이 구조·군집을 찾는 학습'으로 비지도학습을 소개했습니다. K-Means는 그 말을 실제로 구현한 대표 알고리즘입니다. 고객 세분화, 문서/이미지 클러스터링, 이상 탐지 전처리 등에서 라벨이 없을 때 첫 번째로 시도하는 방법입니다.
고객 세분화·세그멘테이션 — 쇼핑몰에서 '구매 이력만 있고 고객 유형 라벨이 없을 때' K-Means로 비슷한 고객끼리 묶어 VIP/일반/이탈 위험 등 세그먼트를 만든 뒤, 사람이 각 군집에 의미를 붙여 활용합니다. 이후 Ch09 교차 검증, Ch12 추천 등과 연결되는 전처리 단계로도 쓰입니다.
직관적이고 구현이 단순함 — 할당 단계(가장 가까운 중심 고르기)와 갱신 단계(평균 계산)만 반복하면 되므로 코드로 짜기 쉽고, 2차원으로 시각화하면 '끼리끼리 묶이는' 과정을 눈으로 확인할 수 있어 학습하기 좋습니다.

어떻게 쓰이는지

군집화(Clustering) — 고객 세분화, 주제별 문서/뉴스 묶기, 이미지 색상/영역 압축, 유전자 표현형 그룹 찾기 등 '비슷한 것끼리 묶기'가 목적일 때 사용합니다.
전처리·특성 요약 — 군집 번호를 새 특성으로 붙여서 지도 학습 모델에 넣거나, 군집별 대표(중심)만 남겨 데이터 크기를 줄이는 용도로 씁니다.
K 선택 — K는 사용자가 정합니다. 여러 K에 대해 SSE·실루엣 등을 보고 꺾이는 지점(엘보우)이나 해석 가능성을 고려해 선택합니다.