이번 문서의 목표: 군집분석이 무엇을 목표로 하는지, 대상 간 거리를 재는 방법(유클리드·맨해튼·마할라노비스), 계층적 군집의 연결법 5가지, K-means 알고리즘의 절차와 한계를 설명할 수 있다.
군집분석은 무엇을 하는 기법인가
왜 필요한가
20편에서 정리했듯, 분류(21·22편)는 미리 정답 레이블(예: 이 고객은 이탈함/안 함)이 주어진 상태에서 새 대상의 레이블을 맞히는 지도학습이었다. 하지만 현실의 데이터에는 정답 레이블이 아예 없는 경우가 훨씬 많다. 예를 들어 쇼핑몰 고객 데이터에 “이 고객은 우수고객, 저 고객은 일반고객”이라는 딱지가 미리 붙어 있지 않다. 이럴 때 “레이블 없이, 데이터 자체의 유사성만으로 비슷한 대상끼리 묶어보자”는 필요에서 나온 기법이 군집분석이다.
쉽게 말하면: 군집분석은 정답표 없이, “누가 누구와 닮았는가”만 보고 데이터를 몇 개의 그룹으로 자동으로 나누는 기법이다.
정의
군집분석(cluster analysis, clustering)은 관측치들 사이의 유사성(similarity) 또는 거리(distance)를 기준으로, 유사한 관측치는 같은 그룹으로, 유사하지 않은 관측치는 다른 그룹으로 묶는 비지도학습(unsupervised learning, 정답 레이블 없이 데이터 구조 자체를 학습하는 방식) 기법이다. 지도학습인 분류와 비교하면, 군집분석은 레이블이 필요 없다는 점이 결정적인 차이다. 이 구분은 기출에서도 “분류와 군집의 차이를 아는가”를 직접 묻는 형태로 자주 나온다.
군집분석은 마케팅에서 고객을 구매 패턴에 따라 몇 개의 세그먼트로 나누거나, 유전자 데이터에서 발현 패턴이 비슷한 유전자를 묶는 등 다양한 분야에 쓰인다.
자주 틀리는 점
기출을 보면 군집분석을 유전 알고리즘(genetic algorithm, 세대를 거듭하며 최적해를 찾는 진화 기반 최적화 기법)이나 강화학습과 혼동시키는 함정이 나온다. “군집분석은 세대를 거듭해 최적의 설계를 찾는다”는 설명은 군집분석이 아니라 유전 알고리즘의 특징이다. 군집분석의 핵심은 “유사성 기준으로 그룹을 나눈다”는 것이지 “반복적으로 진화시켜 최적화한다”는 것이 아니다.
거리 측도: 무엇을 기준으로 비슷하다고 판단하는가
왜 필요한가
“두 관측치가 비슷하다”는 말을 컴퓨터가 계산하려면, 비슷한 정도를 숫자로 표현할 방법이 필요하다. 이 숫자가 작을수록 더 비슷하다고 보는 척도가 거리(distance)다. 거리를 어떻게 정의하느냐에 따라 군집 결과가 달라질 수 있으므로, 대표적인 거리 측도 세 가지를 구분해서 알아야 한다.
쉽게 말하면: 거리 측도는 “두 점 사이의 다름 정도”를 재는 자(尺)이며, 자를 다르게 고르면 같은 데이터도 다르게 묶일 수 있다.
정의: 유클리드 거리
유클리드 거리(Euclidean distance)는 우리가 일상에서 쓰는 직선 거리, 즉 두 점을 곧게 잇는 최단 거리다. 두 점 과 가 있을 때 다음과 같이 계산한다.
- : 두 점 와 사이의 유클리드 거리
- , : 두 점의 좌표(변수가 여러 개면 각 변수 차이의 제곱을 모두 더한 뒤 제곱근을 취한다)
예를 들어 고객 A의 (월평균 방문횟수, 월평균 구매금액)이 (4, 10)이고, 고객 B가 (1, 6)이라면 거리는 다음과 같다.
정의: 맨해튼 거리
맨해튼 거리(Manhattan distance, 도시 블록 거리라고도 함)는 바둑판처럼 구획된 도로를 따라 이동해야 하는 상황을 본뜬 거리다. 대각선으로 가로지르지 못하고 가로·세로로만 이동한다고 가정해, 각 축의 차이의 절댓값을 그대로 더한다.
- : 두 점의 첫 번째 좌표 차이의 절댓값
- 뉴욕 맨해튼처럼 도로가 격자 모양일 때, 실제로 걸어야 하는 거리가 이 방식과 같다는 데서 이름이 유래했다.
같은 고객 A(4, 10), B(1, 6)로 계산하면 다음과 같다.
유클리드 거리(5)보다 맨해튼 거리(7)가 항상 크거나 같다는 점도 함께 기억해두면 좋다. 대각선 직선 거리보다 격자를 따라가는 거리가 더 길거나 같기 때문이다.
정의: 마할라노비스 거리
유클리드 거리와 맨해튼 거리는 변수들의 단위와 변수 간 상관관계를 고려하지 않는다는 한계가 있다. 예를 들어 한 변수는 단위가 킬로미터이고 다른 변수는 밀리미터라면, 숫자만 놓고 계산한 거리는 왜곡된다. 마할라노비스 거리(Mahalanobis distance)는 변수들의 분산과 변수 간 공분산(covariance, 두 변수가 함께 움직이는 정도)까지 반영해 이런 왜곡을 보정한 거리다.
- : 두 관측치를 나타내는 벡터
- : 데이터의 공분산행렬(covariance matrix, 여러 변수 사이의 분산과 공분산을 정리한 행렬)
- : 공분산행렬의 역행렬. 변수의 단위 차이와 변수 간 상관을 함께 보정하는 역할을 한다.
계산 자체는 시험에서 직접 손으로 풀게 하기보다, “변수의 상관관계와 단위 차이를 함께 고려하는 거리는 무엇인가”를 묻는 개념형 문항으로 자주 출제된다. 유클리드·맨해튼과 달리 마할라노비스는 변수 간 상관을 고려한다는 점이 핵심 구분 포인트다.
| 거리 측도 | 계산 방식 | 특징 |
|---|---|---|
| 유클리드 거리 | 차이 제곱의 합의 제곱근 | 직선 최단 거리, 가장 널리 쓰임 |
| 맨해튼 거리 | 차이 절댓값의 합 | 격자를 따라가는 거리, 유클리드보다 크거나 같음 |
| 마할라노비스 거리 | 공분산행렬의 역행렬을 반영한 거리 | 변수 간 상관관계와 단위 차이를 보정 |
계층적 군집분석: 연결법으로 나무를 쌓는다
왜 필요한가
군집을 몇 개로 나눌지 미리 정하지 않고, 가장 가까운 대상끼리 하나씩 묶어 올라가면서 나무 모양의 구조를 만들면 어떨까? 이렇게 하면 나중에 원하는 개수만큼 나무를 잘라 군집 수를 유연하게 정할 수 있다. 이 아이디어가 계층적 군집분석(hierarchical clustering)이다.
쉽게 말하면: 계층적 군집분석은 가장 가까운 대상끼리 계속 짝지어 합치면서, 마지막에는 모두가 하나로 합쳐지는 나무(덴드로그램)를 그리는 방법이다.
정의
계층적 군집분석은 각 관측치를 하나의 군집으로 시작해서, 가장 가까운(또는 유사한) 두 군집을 반복적으로 병합해 나가는 상향식(bottom-up, 병합적agglomerative) 방식이 대표적이다. 이 병합 과정을 나무 모양의 그림으로 표현한 것이 덴드로그램(dendrogram)이다. 덴드로그램에서 원하는 높이(distance 기준)에서 가로로 잘라내면, 그 절단선과 교차하는 세로 가지의 개수가 곧 최종 군집의 개수가 된다. 절단 높이를 낮추면 군집 수는 많아지고, 높이면 군집 수는 적어진다.
연결법: 어떤 기준으로 군집 사이의 거리를 잴 것인가
두 군집을 병합하려면 “군집과 군집 사이의 거리”를 정의해야 하는데, 군집은 여러 점의 묶음이므로 점과 점 사이 거리처럼 간단하지 않다. 이때 쓰는 기준이 연결법(linkage method)이다.
| 연결법 | 영문 | 군집 간 거리 정의 | 특징 |
|---|---|---|---|
| 최단연결법 | single linkage | 두 군집에서 가장 가까운 점 한 쌍의 거리 | 사슬처럼 길게 늘어진 군집이 생기기 쉬움(연쇄효과) |
| 최장연결법 | complete linkage | 두 군집에서 가장 먼 점 한 쌍의 거리 | 둥글고 조밀한 군집을 만드는 경향 |
| 평균연결법 | average linkage | 두 군집의 모든 점 쌍 거리의 평균 | 최단·최장의 중간적 성격, 이상치에 비교적 덜 민감 |
| 중심연결법 | centroid linkage | 두 군집의 중심(centroid, 각 변수 평균으로 만든 대표점) 사이의 거리 | 계산이 직관적이나 역전 현상(군집을 합칠수록 거리가 줄어드는 모순)이 생길 수 있음 |
| 와드연결법 | Ward’s method | 두 군집을 합쳤을 때 늘어나는 군집 내 오차제곱합(SSE)이 최소가 되는 쌍을 병합 | 군집 내 분산을 최소화하는 방향으로 병합, 균등한 크기의 군집을 만드는 경향 |
기출 확인 결과, “와드연결법은 군집 내 분산을 최대화하는 방향으로 연결한다”는 식으로 최소와 최대를 뒤바꾼 오답이 반복 출제된다. 와드연결법은 반드시 최소화(군집 내 오차제곱합의 증가를 최소화)라는 방향으로 기억해야 한다.
자주 틀리는 점
계층적 군집분석에서 군집의 개수를 결정할 때, “단일(최단) 연결법이 군집 간 거리를 항상 최적으로 결정한다”거나 “군집 수는 항상 2~3개가 가장 좋다”는 식의 절대적 서술은 옳지 않다. 군집 수는 덴드로그램에서 병합 거리가 급격히 커지는 지점(큰 변화 지점)을 참고하되, 최종적으로는 데이터 구조와 분석 목적에 따라 달라진다.
K-means 군집분석: 중심점을 옮겨가며 나눈다
왜 필요한가
계층적 군집분석은 관측치 수가 많아지면 모든 쌍의 거리를 계산하고 저장해야 해서 계산량이 급격히 늘어난다. 대량의 데이터를 빠르게 몇 개의 그룹으로 나누고 싶을 때는, 미리 군집 개수 를 정해두고 각 군집의 대표점(중심)을 반복적으로 옮겨가며 군집을 확정하는 방식이 더 실용적이다. 이 방식이 K-means 군집분석이다.
쉽게 말하면: K-means는 “일단 대표(중심) k명을 아무렇게나 뽑고, 모두를 가장 가까운 대표에게 배정한 다음, 대표 위치를 다시 평균으로 옮기는” 과정을 결과가 안정될 때까지 반복하는 방법이다.
정의와 절차
K-means는 미리 정한 군집 개수 개의 중심점(centroid)을 기준으로, 각 관측치를 가장 가까운 중심점의 군집에 배정하고, 배정이 끝나면 각 군집의 평균으로 중심점을 다시 계산하는 과정을 반복하는 알고리즘이다. 이름의 가 바로 군집 개수를 뜻하며, “평균(means)“이 이름에 들어간 이유는 중심점을 군집 소속 관측치들의 평균으로 갱신하기 때문이다.
- 군집 개수 를 정한다. 예를 들어 고객을 3개의 세그먼트로 나누고 싶다면 으로 정한다.
- 초기 중심점을 정한다. 데이터 중에서 무작위로 개의 점을 뽑아 초기 중심점으로 삼는다.
- 각 관측치를 가장 가까운 중심점에 배정한다. 앞서 배운 유클리드 거리 등을 기준으로, 각 점을 가장 가까운 중심점이 속한 군집에 넣는다.
- 중심점을 다시 계산한다. 각 군집에 배정된 점들의 평균 좌표를 구해, 그 평균을 새로운 중심점으로 삼는다.
- 군집 배정이 더 이상 바뀌지 않을 때까지 3~4단계를 반복한다. 중심점의 위치가 더는 변하지 않거나(수렴), 정해둔 최대 반복 횟수에 도달하면 알고리즘을 멈춘다.
작은 예시
1차원 데이터 12를 로 나눈다고 하자. 초기 중심점을 각각 2와 10으로 잡으면, 2·3·4는 중심점 2에 더 가까우므로 첫 번째 군집, 10·11·12는 중심점 10에 더 가까우므로 두 번째 군집으로 배정된다. 각 군집의 평균을 다시 계산하면 첫 번째 군집의 새 중심은 , 두 번째 군집의 새 중심은 이 된다. 이 새 중심으로 다시 배정해도 소속이 바뀌지 않으므로(2·3·4는 여전히 3에, 10·11·12는 여전히 11에 더 가까움) 알고리즘은 여기서 수렴한다.
K값 결정: 엘보우 기법
K-means는 를 미리 정해야 하는데, 적절한 를 고르는 대표적인 방법이 엘보우 기법(elbow method)이다. 를 1, 2, 3, …으로 늘려가며 각 에서 군집 내 제곱합(WSS, Within-cluster Sum of Squares, 각 점과 자신이 속한 군집 중심 사이 거리의 제곱을 모두 더한 값)을 계산해 그래프를 그리면, 가 커질수록 WSS는 계속 감소한다. 하지만 어느 지점을 지나면 WSS의 감소 폭이 눈에 띄게 줄어드는데, 그 꺾이는 지점(팔꿈치 모양)을 적절한 로 선택한다. 이 밖에도 각 점이 자기 군집에 얼마나 잘 속해 있는지를 측정하는 실루엣 계수(silhouette coefficient), 실제 데이터와 무작위 데이터의 군집 내 분산을 비교하는 갭 통계량(gap statistic) 등이 함께 쓰인다.
자주 틀리는 점: 초기 중심점에 대한 민감성
K-means의 대표적인 한계는 초기 중심점을 어디로 잡느냐에 따라 최종 군집 결과가 달라질 수 있다는 점이다. 알고리즘은 각 단계에서 현재 상태를 기준으로 가장 좋아 보이는 선택만 하는 방식(지역 탐색)으로 진행되기 때문에, 운이 나쁜 초기값에서 시작하면 전역적으로 가장 좋은 답이 아니라 국소적으로만 괜찮은 답(지역 최적해)에 갇힐 수 있다. 이 문제를 완화하기 위해 초기 중심점을 여러 번 다르게 시도해 가장 좋은 결과를 택하거나, 초기 중심점들이 서로 멀리 떨어지도록 확률적으로 선택하는 K-means++ 같은 개선된 방법을 쓴다.
또한 K-means는 군집의 모양이 원형(구형)에 가까울 때 잘 작동하지만, 길게 늘어지거나 불규칙한 모양의 군집은 잘 찾아내지 못한다는 한계도 있다. 이 부분은 임의 모양의 군집도 잘 찾는 밀도 기반 군집화(density-based clustering, 예: DBSCAN)와 대조되는 지점으로 자주 출제된다.
K-means와 계층적 군집분석의 비교
| 구분 | K-means | 계층적 군집분석 |
|---|---|---|
| 군집 개수 | 미리 지정해야 함 | 미리 지정할 필요 없음(덴드로그램을 자른 뒤 결정) |
| 결과 형태 | 각 관측치가 하나의 군집에 소속 | 덴드로그램(나무 구조) |
| 초기값 민감성 | 초기 중심점에 따라 결과가 달라질 수 있음 | 해당 없음(병합 순서가 결정론적) |
| 계산 비용 | 상대적으로 낮음(대용량에 적합) | 상대적으로 높음(모든 쌍의 거리 계산 필요) |
핵심 정리
- 군집분석은 레이블 없이 유사성만으로 그룹을 나누는 비지도학습이며, 지도학습인 분류와 근본적으로 다르다.
- 유클리드 거리는 직선 거리, 맨해튼 거리는 격자를 따라가는 거리, 마할라노비스 거리는 변수 간 상관과 단위 차이를 보정한 거리다.
- 계층적 군집의 연결법은 최단·최장·평균·중심·와드 5가지이며, 특히 와드연결법은 군집 내 오차제곱합을 최소화하는 방향으로 병합한다.
- K-means는 중심점 배정과 갱신을 반복하는 알고리즘이며, 초기 중심점에 따라 결과가 달라질 수 있다는 한계가 있다.
- K값은 엘보우 기법, 실루엣 계수, 갭 통계량 등으로 판단한다.