모던지 / 데이터분석 준전문가 / 데이터분석 15강. 군집분석

데이터분석 15강. 군집분석

군집분석은 거리에서 시작합니다. 연봉과 나이를 표준화하지 않고 거리를 재면 사실상 연봉 하나로 고객을 묶게 됩니다.

풀고 시작

문제 1. 연봉(원)과 나이(세)로 고객을 k-평균 군집분석하려 합니다. 먼저 해야 할 일로 가장 알맞은 것은?
연봉은 수천만 단위, 나이는 수십 단위라 그대로 거리를 재면 연봉 차이가 거리를 독차지합니다. 표준화하면 두 변수가 비슷한 무게로 거리에 기여합니다. 군집분석은 비지도학습이라 목표변수가 필요 없습니다.

무엇이 가깝다는 것인가

군집분석(cluster analysis)은 목표변수 없이 비슷한 개체끼리 묶는 비지도학습입니다. 좋은 군집은 안은 서로 비슷하고 밖과는 다릅니다. 비슷함은 거리로 잽니다.

거리 계산 점 (1, 2)와 (4, 6) 사이
유클리드 거리 좌표 차이를 제곱해 더한 뒤 제곱근 5
맨해튼 거리 좌표 차이의 절댓값을 더함 7
체비셰프 거리 좌표 차이 가운데 가장 큰 값 4

유클리드 거리는 두 점 사이의 직선 거리이고, 맨해튼 거리는 바둑판 길을 따라 걷는 거리입니다. 둘을 일반화한 것이 민코프스키 거리로, 차수가 1이면 맨해튼, 2이면 유클리드가 됩니다. 변수끼리의 상관과 분산까지 고려하는 마할라노비스 거리도 있습니다. 성별이나 구매 여부 같은 이진 변수로 비슷함을 잴 때는 두 개체에 공통으로 있는 항목을 둘 중 하나라도 있는 항목으로 나눈 자카드 계수를 씁니다.

계층적 군집: 합치고 또 합친다

계층적 군집은 모든 개체를 각자 하나의 군집으로 두고, 가장 가까운 두 군집을 하나씩 합쳐 나가는 병합 방식이 기본입니다. 거꾸로 전체를 하나로 두고 쪼개 나가는 분할 방식도 있습니다. 합치는 과정은 나무 모양의 덴드로그램(dendrogram)으로 그리며, 원하는 높이에서 가로로 잘라 군집 수를 정합니다. 한 번 합친 군집은 되돌릴 수 없다는 점이 특징입니다.

군집과 군집의 거리를 어떻게 잴지가 연결법입니다. 두 군집에서 가장 가까운 점끼리의 거리를 쓰는 최단연결법은 길쭉한 사슬 모양 군집을 만들기 쉽고, 가장 먼 점끼리의 거리를 쓰는 최장연결법은 조밀하고 둥근 군집을 만듭니다. 모든 점 쌍의 평균 거리를 쓰는 평균연결법, 두 군집 중심 사이의 거리를 쓰는 중심연결법이 있고, 합쳤을 때 군집 안 제곱합이 가장 적게 늘어나는 쌍을 합치는 와드 연결법(Ward)은 크기가 비슷한 군집을 만듭니다.

d  <- dist(scale(df))                   # 표준화한 뒤 유클리드 거리
hc <- hclust(d, method = "ward.D2")     # 와드 연결법
plot(hc)                                # 덴드로그램
cutree(hc, k = 3)                       # 세 군집으로 자르기

k-평균: 중심을 옮겨 가며 묶는다

k-평균(k-means)은 대표적인 비계층적 방법입니다. 군집 수 k를 먼저 정하고, 첫 중심 k개를 무작위로 고릅니다. 모든 점을 가장 가까운 중심에 배정하고, 군집마다 평균을 구해 중심을 옮깁니다. 배정이 더 바뀌지 않을 때까지 이를 되풀이합니다.

k-평균은 빠르고 대용량에도 잘 돌아갑니다. 반면 k를 미리 정해야 하고, 첫 중심에 따라 결과가 달라지며, 평균을 쓰므로 이상값에 끌려가고, 둥근 모양의 군집만 잘 찾습니다. 첫 중심 문제는 R의 kmeans(x, centers = 3, nstart = 25)처럼 여러 번 시작해 가장 좋은 결과를 고르는 방법으로 줄입니다. 이상값이 걱정되면 평균 대신 실제 관측치를 중심으로 삼는 k-메도이드(PAM)를 씁니다.

k는 두 가지로 고릅니다. k를 늘려 가며 군집 안 제곱합을 그렸을 때 감소 폭이 급히 줄어드는 지점을 고르는 엘보우 방법, 그리고 실루엣 계수입니다. 실루엣 계수는 한 점이 자기 군집 안에서 떨어진 평균 거리 a와 가장 가까운 다른 군집까지의 평균 거리 b로 (b − a)를 a와 b 가운데 큰 값으로 나눠 구합니다. 1에 가까우면 잘 묶였고, 0 근처면 경계에 있으며, 음수면 잘못 배정되었다는 뜻입니다.

다른 방식의 군집

혼합분포 군집은 자료가 여러 정규분포가 섞여 만들어졌다고 보고, EM 알고리즘으로 각 분포의 모수를 추정합니다. E 단계에서 관측치마다 각 군집에 속할 확률을 계산하고, M 단계에서 그 확률로 모수를 새로 구합니다. 한 점이 군집 하나에만 속하는 k-평균과 달리 소속을 확률로 줍니다. DBSCAN은 점이 빽빽하게 모인 곳을 군집으로 보므로 모양이 불규칙한 군집도 찾고, 어디에도 속하지 않는 점을 잡음으로 가려내며, k를 정하지 않아도 됩니다. 테우보 코호넨이 제안한 자기조직화지도(SOM)는 고차원 자료를 2차원 격자 위에 비슷한 것끼리 가깝게 배치하는 신경망으로, 입력층과 경쟁층 두 층으로 이뤄지며 역전파 대신 경쟁 학습을 씁니다.

인출 문제

문제 1. 점 (1, 2)와 (4, 6) 사이의 유클리드 거리와 맨해튼 거리를 차례로 옳게 짝지은 것은?
좌표 차이는 3과 4입니다. 유클리드 거리는 9와 16을 더한 25의 제곱근인 5이고, 맨해튼 거리는 3과 4를 더한 7입니다.
문제 2. 두 군집에서 가장 가까운 점끼리의 거리로 군집 사이 거리를 정하는 연결법과 그 특징으로 옳은 것은?
최단연결법은 가장 가까운 한 쌍만 가까우면 합쳐지므로 점들이 줄줄이 이어진 사슬 모양이 되기 쉽습니다. 조밀한 군집은 최장연결법의 특징입니다.
문제 3. k-평균 군집의 단점이 아닌 것은?
k-평균은 계산이 단순해 대용량에서도 빠른 것이 장점입니다. 나머지 셋은 k-평균의 대표적인 약점입니다.
문제 4. 실루엣 계수에 관한 설명으로 옳은 것은?
실루엣 계수는 음수 1에서 1 사이이며, 자기 군집과는 가깝고 다른 군집과는 멀수록 1에 가깝습니다. 0 근처는 경계, 음수는 다른 군집이 더 가깝다는 뜻입니다.

더 풀기

출제기준의 세부항목을 따라 이 강의 범위에서 새로 낸 문제입니다. 모의고사도 여기에서 뽑습니다.

묶음 1

문제 1. 좋은 군집의 조건으로 옳은 것은?
군집분석은 안의 동질성과 밖의 이질성을 함께 높이는 것이 목표입니다. 크기가 꼭 같을 필요는 없습니다.
문제 2. 군집분석이 속하는 학습 방식은 무엇입니까?
군집분석은 정답 범주 없이 자료의 구조만으로 묶으므로 비지도학습입니다.
문제 3. 점 (1, 2)와 (4, 6) 사이의 체비셰프 거리는 얼마입니까?
체비셰프 거리는 좌표 차이 가운데 가장 큰 값이라 3과 4 가운데 4입니다.
문제 4. 민코프스키 거리에서 차수를 1로 두면 어떤 거리가 됩니까?
민코프스키 거리는 차수가 1이면 맨해튼, 2이면 유클리드 거리가 됩니다.
문제 5. 변수끼리의 상관과 분산까지 고려해 거리를 재는 방법은 무엇입니까?
마할라노비스 거리는 공분산을 반영해, 상관이 높은 변수들이 같은 정보를 두 번 세지 않도록 하고 분산이 큰 방향의 차이는 덜 무겁게 봅니다.
문제 6. 두 고객이 산 상품 목록으로 비슷함을 잴 때 쓰는 자카드 계수의 계산으로 옳은 것은?
자카드 계수는 교집합의 크기를 합집합의 크기로 나눈 값이라 0에서 1 사이이고, 1에 가까울수록 비슷합니다.
문제 7. A가 산 상품이 사과, 배, 귤이고 B가 산 상품이 배, 귤, 감, 포도일 때 자카드 계수는 얼마입니까?
함께 산 상품은 배와 귤 두 개이고, 둘 중 하나라도 산 상품은 사과, 배, 귤, 감, 포도 다섯 개라 2/5입니다.
문제 8. 군집분석 전에 변수를 표준화해야 하는 이유로 가장 알맞은 것은?
거리는 좌표 차이로 계산하므로 숫자가 큰 변수의 차이가 거리를 지배합니다. 표준화하면 변수들이 비슷한 무게로 기여합니다.
문제 9. 계층적 군집의 병합 방식을 옳게 설명한 것은?
병합 방식은 아래에서 위로 합쳐 올라갑니다. 전체에서 쪼개 내려가는 것은 분할 방식, 중심을 옮기는 것은 k-평균입니다.
문제 10. 계층적 군집의 결과를 나무 모양으로 그린 그림은 무엇입니까?
덴드로그램은 어떤 군집이 어느 높이에서 합쳐졌는지 보여 주며, 원하는 높이에서 잘라 군집 수를 정합니다.

묶음 2

문제 1. 계층적 군집의 특징으로 옳은 것은?
병합 방식은 한 번 합치면 다시 떼어 내지 않으므로 초반의 잘못된 합병이 끝까지 이어집니다. 군집 수는 덴드로그램을 보고 나중에 정할 수 있습니다.
문제 2. 두 군집에서 가장 먼 점끼리의 거리로 군집 사이 거리를 정하는 연결법은 무엇입니까?
최장연결법은 가장 먼 쌍까지 가까워야 합치므로 조밀하고 둥근 군집을 만듭니다.
문제 3. 합쳤을 때 군집 안 제곱합이 가장 적게 늘어나는 두 군집을 합치는 연결법은 무엇입니까?
와드 연결법은 합병으로 늘어나는 정보 손실, 곧 군집 안 제곱합의 증가를 최소로 하며 크기가 비슷한 군집을 만드는 경향이 있습니다.
문제 4. 두 군집의 모든 점 쌍 사이 거리의 평균으로 군집 사이 거리를 정하는 연결법은 무엇입니까?
평균연결법은 가장 가까운 쌍이나 가장 먼 쌍 하나에 좌우되지 않아 최단과 최장의 중간 성격을 가집니다.
문제 5. R에서 계층적 군집 결과 hc를 세 군집으로 자르는 표현은 무엇입니까?
cutree는 덴드로그램을 원하는 군집 수에서 잘라 각 개체의 군집 번호를 돌려줍니다.
문제 6. k-평균 알고리즘에서 중심을 새로 정하는 방법으로 옳은 것은?
점을 가장 가까운 중심에 배정하고, 군집마다 평균을 새 중심으로 삼는 과정을 배정이 바뀌지 않을 때까지 되풀이합니다.
문제 7. k-평균이 끝나는 조건으로 가장 알맞은 것은?
배정이 바뀌지 않으면 중심도 바뀌지 않으므로 알고리즘이 수렴한 것입니다.
문제 8. kmeans에서 nstart = 25를 주는 이유로 알맞은 것은?
k-평균은 첫 중심에 따라 결과가 달라지므로 여러 번 시작해 군집 안 제곱합이 가장 작은 결과를 고릅니다.
문제 9. 이상값이 많은 자료에서 k-평균 대신 쓰기 좋은 방법은 무엇입니까?
평균은 극단값에 끌려가지만 k-메도이드는 군집 안의 실제 관측치 하나를 중심으로 삼아 이상값에 덜 흔들립니다.
문제 10. k-평균이 잘 찾지 못하는 군집의 모양은 무엇입니까?
k-평균은 중심에서의 거리로 배정하므로 둥근 군집에 강하고 휘어진 모양에는 약합니다. 불규칙한 모양에는 DBSCAN이 알맞습니다.

묶음 3

문제 1. 엘보우 방법으로 k를 고르는 방식으로 옳은 것은?
k를 늘리면 군집 안 제곱합은 계속 줄지만 어느 지점부터는 줄어드는 폭이 작아집니다. 팔꿈치처럼 꺾이는 그 지점이 알맞은 k입니다.
문제 2. 한 점의 자기 군집 안 평균 거리 a가 2, 가장 가까운 다른 군집까지의 평균 거리 b가 8일 때 실루엣 계수는 얼마입니까?
실루엣 계수는 b에서 a를 뺀 6을 둘 가운데 큰 값 8로 나눠 0.75입니다. 1에 가까우므로 잘 묶인 점입니다.
문제 3. 실루엣 계수가 음수인 점에 관한 해석으로 옳은 것은?
음수는 a가 b보다 크다는 뜻, 곧 다른 군집이 더 가깝다는 뜻이라 배정이 잘못되었을 수 있습니다.
문제 4. 혼합분포 군집을 k-평균과 견줘 옳게 설명한 것은?
혼합분포 군집은 정규분포 같은 분포 여러 개가 섞였다고 가정하고, 각 점이 각 분포에서 나왔을 확률을 계산합니다.
문제 5. 혼합분포 군집의 모수를 추정할 때 쓰는 알고리즘은 무엇입니까?
EM 알고리즘은 소속 확률을 계산하는 E 단계와 그 확률로 모수를 새로 구하는 M 단계를 번갈아 되풀이합니다.
문제 6. EM 알고리즘의 E 단계에서 하는 일은 무엇입니까?
E 단계는 기댓값 단계로 소속 확률을 구하고, M 단계는 최대화 단계로 그 확률을 가중치 삼아 평균과 분산 같은 모수를 다시 추정합니다.
문제 7. 밀도 기반 군집인 DBSCAN이 k-평균보다 나은 점으로 가장 알맞은 것은?
DBSCAN은 점이 빽빽한 영역을 군집으로 보므로 모양에 구애받지 않고, 밀도가 낮은 곳의 점은 잡음으로 남깁니다.
문제 8. 자기조직화지도(SOM)에 관한 설명으로 옳은 것은?
SOM은 입력층과 경쟁층으로 이뤄지고, 입력과 가장 가까운 노드와 그 이웃을 입력 쪽으로 끌어당기는 경쟁 학습을 씁니다. 목표변수 없이 배우는 비지도학습입니다.
문제 9. 자기조직화지도를 제안한 사람은 누구입니까?
핀란드의 테우보 코호넨이 자기조직화지도를 제안해 코호넨 지도라고도 부릅니다.
문제 10. 군집분석에 관한 진술로 옳지 않은 것은?
군집분석은 목표변수 없이 비슷한 개체끼리 묶는 비지도학습입니다. 나머지 셋은 옳은 진술입니다.

이전: 14강 분류 모형의 평가 · 다음: 16강 연관분석

모던지 · 궁금하면 모던지 GitHub · 2026-09-30