K-Means와 K-Medoids
군집의 대표점을 평균으로 잡을지, 실제 관측값으로 잡을지의 차이입니다.
한 박물관이 회원별 방문 기록을 분석한다고 가정해 보겠습니다. 어떤 회원은 전시가 바뀔 때마다 짧게 방문하고, 어떤 회원은 가끔 오지만 오래 머물며, 또 다른 회원은 교육 프로그램에 꾸준히 참여합니다. 이런 차이를 일일이 확인하지 않고 비슷한 이용 패턴을 가진 회원끼리 묶을 수 있을까요?
이럴 때 활용하는 방법이 군집분석(Clustering)입니다. 군집분석은 정답으로 주어진 집단 구분 없이 데이터의 유사성을 기준으로 관측값을 그룹으로 나눕니다.
대표적인 거리 기반 방법인 K-Means와 K-Medoids는 모두 지정된 개수의 군집을 찾지만, 각 군집의 중심을 정하는 방식이 다릅니다. K-Means는 관측값의 평균을 중심으로 사용하고, K-Medoids는 실제 관측값 중 하나를 대표점으로 선택합니다.
이번 글에서는 두 방법의 차이와 계산 원리, 데이터 준비와 표준화, 군집 수 결정, 결과표 해석, 이상치의 영향, 분석 시 주의사항까지 박물관 회원의 방문 패턴을 예제로 살펴보겠습니다.
군집분석은 무엇을 알아보는 방법인가요?
군집분석은 관측값 사이의 유사성과 차이를 바탕으로 데이터를 여러 집단으로 나누는 비지도학습 방법입니다.
예를 들어 회원의 방문 횟수, 평균 체류시간, 교육 프로그램 참여 횟수를 함께 살펴보면 한 변수만으로는 드러나지 않는 이용 패턴을 발견할 수 있습니다.
다만 군집분석에서 만들어진 그룹은 실제 세계에 이미 존재하는 확정적인 고객 유형이 아닙니다. 어떤 변수를 선택하고, 어떻게 척도를 조정하고, 어떤 거리와 알고리즘을 사용하는지에 따라 군집 구성이 달라질 수 있습니다. 군집의 이름과 의미 역시 분석 후 각 집단의 특징을 살펴보고 해석해야 합니다.
K-Means와 K-Medoids는 어떻게 다른가요?
두 방법 모두 데이터에서 K개의 군집을 찾습니다.
관측값을 가까운 중심에 할당하고, 군집을 대표하는 중심을 갱신한다는 점도 비슷합니다. 차이는 무엇을 중심이라고 부르는지, 어떤 목적함수를 최소화하는지에 있습니다.
| 구분 | K-Means | K-Medoids |
|---|---|---|
| 군집 대표점 | 관측값의 산술평균(중심점) | 실제 관측값 중 하나(메도이드) |
| 대표적인 목적 | 중심까지의 제곱 유클리드 거리 합 최소화 | 대표점까지의 거리 합 최소화 |
| 중심점의 위치 | 실제 데이터에 없는 값일 수 있음 | 반드시 실제 데이터 중 하나 |
| 이상치의 영향 | 평균과 제곱거리 때문에 상대적으로 큼 | 대표점 방식으로 상대적으로 완화될 수 있음 |
| 거리 선택 | 일반적인 K-Means는 유클리드 거리 기반 | 구현에 따라 다양한 거리·비유사도 사용 가능 |
| 계산 비용 | 일반적으로 비교적 낮음 | 구현과 표본 수에 따라 더 클 수 있음 |
K-Medoids 역시 이상치에 완전히 강한 것은 아닙니다. 극단적인 관측값이 많거나 실제 군집 구조가 복잡하다면 결과가 크게 달라질 수 있습니다.
예제: 박물관 회원 240명의 방문 패턴
한 시립박물관이 회원 240명의 최근 6개월 이용 기록을 분석한다고 가정하겠습니다.
회원의 연령이나 거주지를 미리 기준으로 나누는 대신, 실제 이용 행동이 비슷한 사람들을 찾는 것이 목적입니다.
| 변수 | 단위 | 의미 |
|---|---|---|
| 월평균 방문 횟수 | 회 | 최근 6개월 방문 횟수를 월평균으로 환산 |
| 방문당 평균 체류시간 | 분 | 한 번 방문할 때 머문 평균 시간 |
| 6개월간 교육 프로그램 참여 | 회 | 강연·체험 프로그램 참가 횟수 |
| 방문당 평균 기념품 지출 | 천 원 | 매장 구매금액의 평균 |
연구 질문은 "박물관 회원들의 이용 행동은 어떤 대표적인 패턴으로 구분되는가?"입니다.
이 분석에서 군집은 관람객의 행동을 설명하기 위한 탐색적 구분이며, 회원의 만족도나 향후 재방문을 자동으로 예측하는 결과는 아닙니다.
분석 전에 데이터를 어떻게 준비하나요?
가장 먼저 관측 단위를 통일해야 합니다.
이 예제에서는 회원 한 명이 한 행이며, 네 개의 행동 변수는 열로 구성됩니다. 방문 기록이 거의 없는 회원의 체류시간이나 지출액이 어떻게 계산되었는지도 명확하게 정해야 합니다.
예를 들어 방문한 적이 없는 회원의 '방문당 평균 체류시간'을 임의로 0분으로 기록하면 실제로 0분 머문 회원과 구별되지 않을 수 있습니다.
또한 결측값과 중복 회원, 비정상적으로 긴 체류시간, 환불로 인한 음수 지출 등을 점검해야 합니다. 이상치가 있다고 무조건 삭제하는 것이 아니라 실제 이용 기록인지 먼저 확인하는 것이 중요합니다. 범주형 변수를 함께 사용하려면 단순 K-Means보다 해당 변수에 적합한 거리 또는 다른 군집 방법을 고려해야 할 수 있습니다.
표준화는 왜 중요한가요?
거리 기반 군집분석에서는 변수의 단위와 범위가 결과에 직접적인 영향을 줄 수 있습니다.
월평균 방문 횟수가 0~8회이고 체류시간이 20~240분이라면, 원자료의 유클리드 거리를 그대로 사용할 경우 체류시간 차이가 상대적으로 크게 반영됩니다.
따라서 변수들의 중요도를 비슷하게 두고 싶다면 평균 0, 표준편차 1로 변환하는 Z점수 표준화를 고려할 수 있습니다.
zij = ( xij − x̄j ) ÷ sj
이때 표준화는 변수에 동일한 수학적 척도를 적용하는 과정이지 모든 변수가 실제로 똑같이 중요하다는 사실을 입증하는 과정은 아닙니다. 분석 목적에 따라 특정 변수에 가중치를 줄 수 있고, 이상치에 민감한 평균·표준편차 대신 강건한 척도 변환을 검토할 수도 있습니다.
새 데이터에 군집을 적용한다면 학습 데이터에서 계산한 변환 기준을 그대로 사용해야 합니다.
K-Means는 어떤 방식으로 군집을 만드나요?
K-Means는 먼저 K개의 초기 중심점을 정한 뒤 각 관측값을 가장 가까운 중심점에 할당합니다.
그다음 각 군집에 속한 관측값의 평균으로 중심점을 갱신하고, 군집 할당과 중심점 갱신을 반복합니다.
일반적인 K-Means의 목적함수는 각 군집에 속한 관측값과 중심점 사이의 제곱거리 합을 최소화하는 것입니다. 여기서 μk는 군집 k에 속한 관측값들의 평균 벡터입니다. 관측값과 중심점 사이의 제곱거리를 최소화하므로 중심점에서 멀리 떨어진 관측값이 결과에 비교적 큰 영향을 미칠 수 있습니다.
초기 중심점에 따라 다른 해에 수렴할 수 있으므로 실제 분석에서는 K-Means++와 여러 번의 초기화(n_init)를 사용하는 것이 일반적입니다. 반복 과정이 수렴하더라도 전역적으로 가장 좋은 군집 구성을 찾았다는 보장은 없습니다.
K-Medoids는 무엇을 다르게 계산하나요?
K-Medoids는 각 군집의 대표점을 실제 관측값 가운데 선택합니다.
예를 들어 어느 군집에서 대표적인 회원 한 명을 찾아 설명해야 한다면, 데이터에 존재하지 않는 '평균 회원'보다 실제 회원의 기록을 대표점으로 사용할 수 있습니다.
대표점 mk는 실제 데이터 중에서 고르고, 모든 관측값이 가장 가까운 대표점까지 가진 거리 d의 합을 최소화합니다.
각 관측값은 가장 가까운 메도이드에 할당됩니다. 대표적인 알고리즘으로 PAM(Partitioning Around Medoids)이 있으며, 메도이드 후보를 교환하면서 전체 거리 비용을 줄이는 방식을 사용할 수 있습니다.
실제 회원 가운데 대표점을 고를 수 있다는 장점이 있지만, 전체 관측값 간 거리를 계산하고 후보를 탐색하는 과정은 데이터가 매우 클 때 부담이 될 수 있습니다.
이상치가 있으면 중심점은 얼마나 달라지나요?
다음과 같이 다섯 명의 월간 방문 횟수만 있다고 가정해 보겠습니다.
| 회원 | 방문 횟수 |
|---|---|
| A | 2 |
| B | 3 |
| C | 4 |
| D | 5 |
| E | 30 |
K=1일 때 K-Means의 중심점은 산술평균이므로 (2+3+4+5+30) ÷ 5 = 8.8회입니다. 대부분의 회원은 2~5회 방문했지만 30회라는 값 때문에 중심이 오른쪽으로 이동했습니다.
반면 절댓값 거리 합을 최소화하는 1차원 K-Medoids에서는 실제 관측값인 4회가 메도이드입니다. 4회까지의 절댓값 거리 합은 2+1+0+1+26 = 30이며, 다른 관측값을 대표점으로 선택했을 때보다 작습니다.
이 예제는 두 방법이 극단값에 다르게 반응할 수 있음을 보여줍니다. 다만 여러 변수와 여러 군집이 존재하는 실제 데이터에서는 차이가 더 복잡하게 나타나므로 특정 알고리즘이 언제나 더 좋은 결과를 낸다고 판단해서는 안 됩니다.
군집 수 K는 어떻게 결정하나요?
K-Means와 K-Medoids는 모두 군집 수 K를 미리 정해야 합니다.
적절한 K를 선택하기 위해 여러 값을 비교하되, 하나의 지표만으로 결정하기보다는 군집의 안정성과 해석 가능성을 함께 확인하는 것이 좋습니다.
K-Means에서는 K가 커질수록 군집 내 제곱거리 합(Inertia 또는 WCSS)이 감소합니다. 이를 K별로 표시한 엘보 방법(Elbow Method)은 감소 폭이 완만해지는 지점을 살펴보는 방식입니다. 다만 뚜렷한 굴곡이 나타나지 않을 수도 있습니다.
실루엣 계수(Silhouette Score)는 자신의 군집 안에서의 거리와 가장 가까운 다른 군집까지의 거리를 비교합니다. 일반적으로 -1에서 1 사이의 값을 가지며, 값이 높을수록 군집이 상대적으로 잘 분리되어 있음을 나타냅니다. 다만 둥근 형태가 아닌 군집이나 불균형한 군집에서는 해석에 주의해야 합니다.
| K | 평균 실루엣 계수 |
|---|---|
| 2 | 0.39 |
| 3 | 0.47 |
| 4 | 0.43 |
| 5 | 0.38 |
이 결과에서는 K=3이 가장 높습니다. 그러나 점수가 가장 높다는 이유만으로 무조건 3개 군집을 선택하지 않고, 각 군집의 크기와 실제 행동 패턴이 의미 있게 구분되는지도 검토해야 합니다.
실제 군집 결과는 어떻게 해석하나요?
표준화한 네 가지 행동 변수를 이용해 K=3으로 군집을 나눈 결과입니다.
표의 수치는 이해를 돕기 위해 원래 단위로 다시 표시한 군집별 평균입니다.
| 지표 | 군집 1 | 군집 2 | 군집 3 |
|---|---|---|---|
| 회원 수 | 90명 | 95명 | 55명 |
| 월평균 방문 횟수 | 3.8회 | 1.1회 | 2.4회 |
| 방문당 평균 체류시간 | 65분 | 145분 | 110분 |
| 6개월 교육 프로그램 참여 | 0.4회 | 0.3회 | 4.2회 |
| 방문당 평균 기념품 지출 | 8천 원 | 21천 원 | 12천 원 |
군집 1은 자주 방문하지만 상대적으로 짧게 머무르는 회원이 많아 '짧고 잦은 관람형'으로 설명할 수 있습니다. 군집 2는 방문 빈도는 낮지만 한 번 방문했을 때 오래 머무르고 매장 지출도 높은 편이므로 '여유로운 장기 관람형'이라는 이름을 고려할 수 있습니다. 군집 3은 교육 프로그램 참여가 뚜렷하게 많아 '프로그램 참여형'으로 해석할 수 있습니다.
이러한 이름은 통계 모형이 자동으로 발견한 객관적 성격 유형이 아니라, 군집별 기술통계를 바탕으로 연구자가 붙인 설명입니다. 실제 활용에서는 각 군집 내부의 분산과 구성원별 차이도 확인해야 합니다.
K-Means와 K-Medoids 결과를 어떻게 비교하나요?
두 알고리즘을 공정하게 비교하려면 가능한 한 동일한 관측값과 변수, 표준화 기준을 사용해야 합니다.
K-Means는 일반적으로 제곱 유클리드 거리를 최소화하고 K-Medoids는 선택한 거리의 합을 최소화하므로, 서로 다른 목적함수 값을 직접 비교해서 어느 방법이 더 우수하다고 판단해서는 안 됩니다.
비교할 때는 같은 거리 기준으로 계산한 실루엣 계수, 군집 크기의 불균형, 초기값에 따른 결과 변화, 이상치를 포함하거나 제외했을 때의 안정성, 실제 해석 가능성 등을 함께 살펴볼 수 있습니다.
또한 K-Means의 중심점은 네 변수의 평균값으로 요약된 가상 관람객 프로필인 반면, K-Medoids의 대표점은 실제 회원 한 명의 기록입니다. 대표 회원의 행동을 사례로 제시해야 한다면 K-Medoids가 편리할 수 있지만, 대규모 데이터에서 계산 효율성을 우선한다면 K-Means를 먼저 검토하는 것이 실용적일 수 있습니다.
군집분석에서는 어떤 점을 주의해야 하나요?
변수 선택이 결과를 좌우합니다.
방문 횟수만 사용한 군집과 방문 횟수·체류시간·프로그램 참여를 함께 사용한 군집은 다르게 나타날 수 있습니다. 비슷한 정보를 반복해서 담은 변수들이 있으면 특정 행동 특성이 과도하게 반영될 수도 있습니다.
표준화와 거리의 의미를 확인해야 합니다.
단위가 다른 변수를 원자료 그대로 비교하면 값의 범위가 큰 변수가 거리를 지배할 수 있습니다. 표준화 자체도 이상치의 영향을 받을 수 있으므로 데이터 특성에 맞게 선택해야 합니다.
군집 수와 초기화 결과를 검토해야 합니다.
K-Means는 초기 중심점에 따라 다른 결과가 나올 수 있으며, K-Medoids 역시 초기 메도이드나 탐색 방법에 영향을 받을 수 있습니다. 여러 초기화와 군집 수에서 결과를 비교하면 안정성을 파악하는 데 도움이 됩니다.
군집이 실제로 분리되는지 확인해야 합니다.
실루엣 계수가 낮거나 여러 군집의 특성이 거의 같다면 뚜렷한 집단이 없는 자료일 수도 있습니다. 모든 데이터에 반드시 의미 있는 군집이 존재하는 것은 아닙니다.
인과관계나 예측 성능으로 해석하지 않아야 합니다.
교육 프로그램 참여형 회원이 더 자주 재방문하더라도 프로그램 참여가 재방문을 증가시켰다고 단정할 수 없습니다. 또한 군집분석만으로 미래 행동의 예측 정확도가 보장되지는 않습니다.
K-Means·K-Medoids 결과는 어떻게 보고하나요?
군집분석 결과를 보고할 때는 분석 대상과 사용 변수, 결측·이상치 처리 방식, 표준화 방법, 군집 수 결정 기준, 알고리즘과 거리 척도, 군집별 크기와 특성을 함께 제시하는 것이 좋습니다.
알고리즘 간 비교를 수행했다면 동일한 평가 기준에서 결과가 얼마나 안정적인지도 설명해야 합니다.
결과 보고 예시
박물관 회원의 이용 행동 패턴을 파악하기 위해 회원 240명의 최근 6개월 방문 기록을 이용해 군집분석을 실시하였다. 분석에는 월평균 방문 횟수, 방문당 평균 체류시간, 교육 프로그램 참여 횟수, 방문당 평균 기념품 지출액을 사용했으며, 변수 간 단위 차이를 줄이기 위해 Z점수 표준화를 적용하였다. K=2~5의 후보를 비교한 결과, 실루엣 분석에서 K=3의 평균 실루엣 계수가 가장 높게 나타났다(0.47).
세 군집은 각각 짧고 잦은 관람형(90명), 여유로운 장기 관람형(95명), 프로그램 참여형(55명)으로 해석되었다. 첫 번째 군집은 방문 빈도가 높고 체류시간이 짧았으며, 두 번째 군집은 방문당 체류시간과 매장 지출이 상대적으로 높았다. 세 번째 군집은 교육 프로그램 참여가 뚜렷하게 많았다. 이러한 구분은 회원 행동을 이해하는 데 도움이 되지만, 군집 이름이 고정된 이용자 유형을 의미하거나 행동의 원인을 설명하는 것은 아니다.
실제 연구에서는 선택한 알고리즘별 평가 지표와 군집별 산포, 결과의 안정성도 함께 보고해야 합니다.
평균으로 대표할 것인가, 실제 관측값으로 대표할 것인가?
K-Means와 K-Medoids는 비슷한 관측값을 묶어 데이터의 패턴을 탐색하는 대표적인 군집분석 방법입니다.
K-Means는 각 군집의 평균을 중심으로 제곱거리를 최소화하고, K-Medoids는 실제 관측값 가운데 대표점을 선택해 거리 합을 최소화합니다. 따라서 중심점의 의미와 이상치에 대한 반응, 계산 비용에서 차이가 나타납니다.
어떤 방법을 선택하든 분석 결과의 품질은 알고리즘 이름보다 변수 선택, 표준화, 거리 척도, 군집 수, 결과의 안정성과 해석 가능성에 달려 있습니다. 군집은 데이터에서 발견한 탐색적 분류이므로 실제로 활용하기 전에 각 그룹이 어떤 행동을 보이며 구분이 반복적으로 재현되는지 확인하는 것이 좋습니다.
핵심은 데이터를 억지로 몇 개 집단으로 나누는 것이 아니라, 서로 다른 행동 패턴이 실제로 존재하는지 확인하고 그 차이를 이해하는 데 있습니다.