Skip to content
PART 5 · 27장

K-평균 클러스터링

라벨 없이 그룹 찾기

라벨 없이 패턴을 찾을 수 있을까?

고객 데이터가 10만 건 있는데 "이 고객은 VIP", "이 고객은 이탈 위험"이라는 라벨이 전혀 없다면? 지금까지 배운 지도 학습은 무력합니다.

하지만 데이터 자체에 숨겨진 패턴이 있습니다. 비슷한 구매 패턴의 고객끼리 자연스럽게 군집(cluster)을 이루고 있을 수 있습니다. K-평균 클러스터링은 이런 숨은 그룹을 자동으로 찾아내는 가장 기본적이고 강력한 알고리즘입니다.

이 장에서는 K-평균의 원리를 단계별로 체험하고, 최적의 K를 결정하는 방법, 초기화의 함정, 그리고 실전 고객 세분화까지 다룹니다.

K-평균의 네 단계

알고리즘은 놀랍도록 단순합니다. 딱 네 단계의 반복입니다.

쉽게 말하면 -- 학교에서 모둠 나누기
선생님이 "오늘 3모둠으로 활동합니다"라고 선언하고, 교실 세 곳에 깃발을 꽂습니다. 학생들은 가장 가까운 깃발로 모입니다. 그런 다음 각 모둠의 한가운데로 깃발을 옮기고, 다시 가까운 깃발로 모이라고 합니다. 이 과정을 반복하면 자연스러운 모둠이 만들어집니다. K-평균은 정확히 이 "모둠 나누기"를 수학적으로 수행하는 알고리즘입니다.
1
중심점 배치
K개의 중심점(centroid)을 랜덤하게 배치
2
할당
각 점을 가장 가까운 중심에 배정
3
갱신
각 군집의 평균으로 중심 이동
4
반복
중심이 움직이지 않을 때까지 2-3 반복
일상 언어로 풀어보는 알고리즘 3단계:
1단계 -- "대충 시작": K개의 대표 점(중심점)을 아무 데나 놓습니다. 학교에서 조장 자리를 임의로 정하는 것과 같습니다.
2단계 -- "가까운 쪽으로 모여": 모든 데이터 점이 자기에게 가장 가까운 중심점 쪽으로 배정됩니다. 학생들이 가장 가까운 조장에게 붙는 것입니다.
3단계 -- "조장 자리 다시 잡기": 각 조의 구성원들의 평균 위치로 중심점을 이동합니다. 이 2-3단계를 중심점이 더 이상 움직이지 않을 때까지 반복합니다.
목표: J = sum(||x_i - mu_k||^2) 최소화
mu_k = 군집 k에 속한 점들의 평균 (중심점)
수렴 보장: 매 단계 J가 감소하거나 유지됨

실습 1: 단계별 K-평균

"한 단계" 버튼을 누를 때마다 할당과 갱신이 교대로 실행됩니다. 중심점이 어떻게 이동하고 군집이 어떻게 형성되는지 직접 관찰하세요.

해보기: (1) "초기화"로 시작한 후, "한 단계"를 반복적으로 누르세요. (2) 몇 단계 만에 수렴하나요? 관성(inertia)이 감소하는지 확인하세요. (3) K 값을 바꿔서 군집 수에 따른 차이를 관찰하세요.
현재 단계
-
관성(Inertia)
-
상태
-
단계 유형
-
관찰 포인트: 처음 몇 단계에서 관성이 급격히 떨어지고, 이후 거의 변하지 않습니다. 이것이 "수렴"입니다. 보통 10-20단계 안에 수렴합니다.

실습 2: 최적 K 선택 -- 엘보우와 실루엣

K-평균의 가장 큰 질문: K를 몇으로 할 것인가? 두 가지 방법으로 최적 K를 찾습니다.

쉽게 말하면 -- "더 나눠봐도 개선이 없으면 그만": 피자를 2조각으로 나누면 큰 차이가 있고, 4조각으로 나누면 또 편리해집니다. 하지만 100조각으로 나누면? 8조각이나 100조각이나 별 차이가 없습니다. 엘보우 방법은 "더 나눠봐도 별로 나아지지 않는 지점"을 찾아서 거기서 멈추는 것입니다.

엘보우 방법

K=1~10까지 관성(inertia)을 그래프로 그립니다. 관성이 급격히 꺾이는 "팔꿈치" 지점이 최적 K입니다.

실루엣 점수

각 점이 자기 군집에 얼마나 잘 속하는지 측정합니다. -1(최악)~1(최적). 평균 실루엣이 가장 높은 K가 최적입니다.

해보기: "분석 실행"을 누르면 K=1~10 각각에 대해 K-평균을 실행합니다. 엘보우 차트와 실루엣 점수를 보고 최적 K를 판단하세요.
엘보우 차트
실루엣 점수

실습 3: 초기화의 함정

K-평균의 결과는 초기 중심점 위치에 따라 달라집니다. 같은 데이터, 같은 K로 5번 실행하면 결과가 매번 다를 수 있습니다!

출발점에 따라 결과가 달라진다: 네비게이션 없이 처음 보는 도시에서 맛집을 찾는 상황을 생각해보세요. 어디서 탐색을 시작하느냐에 따라 찾게 되는 맛집이 달라집니다. K-평균도 마찬가지입니다. 중심점의 초기 위치가 나쁘면 "진짜 최적"이 아니라 "그 근처에서 가장 좋은 결과(로컬 최적)"에 갇힐 수 있습니다. 그래서 여러 번 실행하거나, K-means++처럼 똑똑한 초기화 방법을 사용합니다.
해보기: "5회 실행"을 누르면 같은 데이터에 5번 K-평균을 실행합니다. 결과가 얼마나 다른지 관찰하세요. 그 다음 K-means++를 사용해보세요.
해결책: K-means++ K-means++는 첫 중심점을 랜덤으로 놓되, 이후 중심점은 기존 중심에서 가장 먼 점을 우선 선택합니다. 이렇게 하면 초기 중심이 골고루 퍼져 나쁜 로컬 최적에 빠질 확률이 크게 줄어듭니다.

실습 4: 고객 세분화

실제와 유사한 고객 데이터(구매 금액, 구매 빈도)에 K-평균을 적용하여 고객을 자동으로 세분화합니다. 각 군집에 비즈니스 라벨을 붙여보세요.

해보기: (1) "고객 데이터 생성" 후 K-평균을 실행하세요. (2) 각 군집의 특성을 확인하고 비즈니스 라벨을 선택하세요. (3) 실무에서는 이 결과를 바탕으로 마케팅 전략을 수립합니다.
비즈니스 활용: 고객 세분화는 CRM(고객관계관리)의 핵심입니다. VIP에게는 프리미엄 서비스, At-risk에게는 재참여 캠페인, 신규 고객에게는 온보딩 프로그램을 설계합니다. K-평균은 이 모든 것의 출발점입니다.

K-평균의 한계

한계점

  • K를 미리 정해야 함
  • 구형(둥근) 군집만 잘 찾음
  • 크기가 다른 군집에 취약
  • 초기화에 민감 (로컬 최적)
  • 이상치에 영향 큼

대안 알고리즘

  • 계층적 클러스터링: K 불필요, 덴드로그램 제공
  • DBSCAN: 비구형 군집, 노이즈 자동 제거
  • GMM: 소프트 할당 (확률적)
  • Mini-batch K-Means: 대규모 데이터용
이 장의 핵심
  • K-평균은 중심점 배치 - 할당 - 갱신 - 반복의 네 단계로 동작한다.
  • 엘보우 방법과 실루엣 점수로 최적 K를 결정한다.
  • 초기화에 민감하므로 K-means++를 사용하는 것이 좋다.
  • 구형 군집에는 강력하지만, 비구형 데이터에는 한계가 있다.
  • 고객 세분화, 이미지 압축, 이상 탐지 등 다양한 분야에 활용된다.

다음 장 예고: K-평균이 실패하는 형태의 군집을 다루는 계층적 클러스터링과 DBSCAN을 배웁니다.