군집분석 — 코드 실습
군집분석(clustering)은 정답 라벨 없이 서로 비슷한 관측점끼리 그룹으로 묶는 비지도 학습 기법입니다. 대표 알고리즘인 K-평균은 군집 개수 \(k\)를 정하면, 각 점을 가장 가까운 중심에 배정하고 중심을 다시 계산하는 과정을 반복합니다.
1. K-평균 첫걸음 — iris 꽃잎 데이터
변수 단위가 다르면 거리 계산이 왜곡되므로 먼저 scale()로 표준화합니다. k 값을 바꿔 군집이 어떻게 달라지는지 관찰하세요. X 표시가 각 군집의 중심입니다.
2. 몇 개의 군집이 적당할까? — 팔꿈치 방법
K-평균의 품질은 총 군집 내 제곱합(tot.withinss)으로 잽니다. \(k\)를 늘리면 항상 줄어들지만, 감소가 급격히 완만해지는 “팔꿈치” 지점이 적정 \(k\)의 후보입니다.
faithful 데이터는 \(k = 2\) 부근에서 꺾입니다 — 실제로 간헐천 분출은 “짧고 잦은” 유형과 “길고 뜸한” 유형 두 그룹으로 나뉩니다.
3. 연습 — 직접 군집화해 보기
연습 1: 두 개의 군집 찾기
faithful 데이터를 표준화한 뒤 K-평균으로 2개의 군집을 찾고, 군집별 관측 수를 출력하세요.
2절의 팔꿈치 그림에서 꺾이는 지점이 힌트입니다: centers = 2.
km <- kmeans(d, centers = 2, nstart = 10)
km$size연습 2: 총 군집 내 제곱합 꺼내기
kmeans 결과 객체에서 팔꿈치 방법에 쓰는 총 군집 내 제곱합을 꺼내세요.
kmeans() 결과는 리스트입니다. km3$tot.withinss처럼 $로 성분을 꺼냅니다.
wss <- km3$tot.withinss
wss