정답 표시가 없는 자료를 비슷한 것끼리 몇 무리로 나누는 일이다. 좋은 무리는 안쪽끼리는 서로 닮고, 다른 무리와는 확실히 다르다. 고객을 취향별로 나누거나, 사진의 색을 몇 가지로 줄이는 데 쓴다. 다만 정답이 없어 “잘 나눴다”를 재는 기준부터 정해야 하고, 그 기준(거리, 확률, 밀도, 연결)에 따라 같은 자료도 다르게 나뉜다.
예시로 보기
분류는 “이 사진은 고양이”처럼 정답을 보고 배운다. 그런데 정답 없이 고객 수만 명의 구매 기록만 있다면, 비슷한 고객끼리 묶는 것부터 해야 한다. 정답이 없으니 오답률도 계산할 수 없다. 그래서 군집화는 어렵고 주관적이다.
쓰임 두 가지.
- 자료 요약: 숫자 손글씨 사진들을 군집화하면 군집 중심이 “평균적인 0, 1, 2…”의 모습이 된다. 중심은 실제 사진이 아니지만 그 무리를 잘 대표한다.
- 색 줄이기: 사진의 각 화소는 (R, G, B) 세 값이다. 화소들을 \(k\)개 군집으로 묶고 각 화소를 자기 군집의 중심 색으로 바꾸면, 사진에 쓰인 색이 \(k\)가지로 준다. 압축이자 영상 분할이다.
정의
군집은 같은 군집 안에서는 서로 비슷하고 다른 군집의 점들과는 다른 자료점의 모임이다.
군집 분석은 자료점 \(\{\mathbf x_i\}_{i=1}^{n}\), \(\mathbf x_i \in \mathbb{R}^d\)(\(d\)는 자료의 차원)를 \(k\)개 무리로 나누는 일이다. 출력은 군집 중심과 각 점의 소속이다. 미리 정한 정답 표시가 없는 비지도 학습이다.
좋은 군집화는
- 군집 내 유사도가 높다: 군집 안쪽이 촘촘하다.
- 군집 간 유사도가 낮다: 군집끼리 뚜렷이 다르다.
“얼마나 비슷해야 충분히 비슷한가”는 주관적이고, 응용마다 알맞은 유사도가 다르다. 그래서 군집화 방법은 기준에 따라 거리 기반, 확률 기반, 밀도 기반, 연결 기반으로 나뉜다.
| 기준 | 이 문서 모음의 방법 |
|---|---|
| 거리 | k-평균, k-메도이드 |
| 확률 | 가우스 혼합 모델 |
| 밀도 | DBSCAN, CLIQUE |
연결
- 선수: 민코프스키 거리(비슷함을 재는 법)
- 이상치 찾기: 데이터 정제의 이상치 분석은 어느 군집에도 들지 않는 값을 잡음으로 본다.
- 방법 비교: 군집화 알고리즘 비교
과목별 관점
자료와 정보 (2-1학기). 군집화를 “자료를 요약할 대표 선수 뽑기”로 시작한다. 가진 것이 자료 \(N\)개뿐일 때 그 자료를 잘 나타내는 대표를 뽑으려면 네 가지를 정해야 한다. 대표를 몇 개 둘지, 대표를 점 하나로 둘지 무리로 둘지, 무리의 대표를 무엇으로 적을지, 대표를 어떻게 고를지다. 자료는 \(\mathbf x_0, \dots, \mathbf x_{N-1}\)처럼 0번부터 세고 차원은 \(D\)로 쓴다(\(\mathbf x_i \in \mathbb{R}^D\)). 이 문서의 \(n\), \(d\)와 같은 수다.
- 묶는 기준은 정하기 나름이다. 심슨 만화의 인물 아홉 명은 “심슨 가족 / 학교 직원”으로도, “여자 / 남자”로도 나뉜다. 사람들이 한 줄로 선 사진도 성별, 나이, 옷차림 가운데 무엇을 보느냐에 따라 다르게 묶인다. 어느 쪽도 틀린 답이 아니다. 기준을 먼저 정해야 답이 생긴다.
- 왜 묶는가. 자료마다 정답 표시를 붙이는 일은 비싸다. 자료가 어떤 짜임인지 알고 싶다. 자료를 대표하는 본보기(prototype)를 찾고 싶다. 묶고 나면 얻는 것은 넷이다. 자료 안에 서로 다른 집단이 몇 개인지 가설을 세운다. 무리마다 예측 모델을 따로 만든다. 무리를 그 중심 하나로 바꿔 자료를 줄인다. 중심에서 먼 점이나 아주 작은 무리에 끼인 점을 이상치로 골라낸다.
- 방법을 가르는 다른 축. 위 표는 “비슷함을 무엇으로 재는가”로 방법을 갈랐다. “무리를 어떤 꼴로 내놓는가”로 가를 수도 있다. 평면 방식(flat)은 처음에 아무렇게나 나눈 뒤 조금씩 고쳐 간다. k-평균과 모델 기반 군집화가 여기에 든다. 계층 방식(hierarchical)은 무리 안에 무리가 든 나무를 만든다. 점 하나짜리 무리에서 시작해 가까운 것끼리 합쳐 올라가는 방식(agglomerative)과, 전체를 한 무리로 두고 쪼개 내려가는 방식(divisive)이 있다.
- 한 곳에만 넣기와 여러 곳에 넣기. 점마다 무리 하나에만 넣는 방식(hard clustering)이 더 흔하고 쉽다. 한 점을 여러 무리에 넣는 방식(soft clustering)도 있다. 운동화 한 켤레는 “스포츠 의류”에도 “신발”에도 들어가야 손님이 찾기 쉽다. 이런 일은 여러 곳에 넣는 방식으로만 할 수 있다.
확인 문제
C1 군집 분석의 입력과 출력을 쓰고, 좋은 군집화의 두 조건을 쓰라.
답: 입력은 정답 없는 자료점 \(n\)개(\(d\)차원 벡터), 출력은 군집 중심과 각 점의 소속이다. 군집 안쪽 유사도는 높고, 군집 사이 유사도는 낮아야 한다.
C2 다음 중 군집 분석으로 풀 일과 분류로 풀 일을 가르라. ① 스팸/정상 표시가 붙은 메일로 새 메일을 판정 ② 표시 없는 뉴스 기사 수만 건을 주제별로 묶기 ③ 사진의 색을 16가지로 줄이기
답: ① 분류(정답 표시로 배운다). ② 군집 분석. ③ 군집 분석(화소 색을 16개 군집으로 묶고 중심 색으로 바꾼다).
C3 다음 일에 맞는 방식을 고르라. ① 온라인 상점에서 운동화를 “신발”과 “스포츠 의류” 두 갈래 모두에서 찾게 한다 ② 생물을 “큰 무리 안에 작은 무리, 그 안에 더 작은 무리”로 보여 준다 ③ 고객을 겹치지 않는 세 무리로 나눠 무리마다 다른 쿠폰을 보낸다
답: ① 여러 곳에 넣기(소프트 군집화). ② 계층 방식. ③ 한 곳에만 넣는 평면 방식(k-평균 등).
이유: ①은 한 물건이 두 무리에 동시에 들어야 하므로 한 곳에만 넣는 방식으로는 할 수 없다. ②는 무리가 서로 품는 나무 꼴이 필요한데, 평면 방식은 같은 높이의 무리 몇 개만 내놓는다. ③은 한 사람이 쿠폰 하나만 받아야 하므로 겹치지 않게 나눈다.