클러스터링(Clustering)이란?
각 개체의 그룹 정보(정답)없이 유사한 특성을 가진 개체끼리 군집화하는 것
- Hard Clustering: 특정 개체가 집단에 포함되는지 여부, 클러스터에 속한다(1), 속하지 않는다(0)으로 표현
- K-means Clustering 알고리즘이 이에 해당
- Soft Clustering: 특정 개체가 집단에 얼마나 포함되는지 정도, 클러스에 속하는 정도로 표현
- Gasussian Mixture Model 알고리즘이 이에 해당
클러스터링 목표
(1) 군집 간 유사성 최소화: 다른 군집 간 데이터 간에는 서로 비슷하지 않게
(2) 군집 내 유사성 최대화: 동일 군집 내 데이터 간에는 서로 비슷하게
최적의 군집 개수 K 구하기
다양한 K값을 시도해보고, 비용 함수 그래프가 꺾이는 부분 즉, 클러스터의 수를 증가시켜도 별 효과가 없는 지점의 K 선택
K-means Clustering
- 제공된 데이터를 K개로 군집화하는 알고리즘
- 군집화할 개수 K는 직접 설정해야 하는 하이퍼 파라미터
K-means Clustering 원리
1. 데이터셋 중에서 K개를 랜덤하게 뽑아 해당 데이터를 중심으로 함 - 초기화 단계에서만 진행
2. 모든 데이터에 대해서 아래 과정 반복 - 각 클러스터의 중심과 자신(해당 데이터)을 비교하고, 가장 가까운 클러스터를 저장함.
3. 모든 클러스터에 대해서 아래 과정을 반복 - 자신(해당 클러스터)에 할당된 데이터들의 중심을 계산하고, 계산된 중심을 새로운 중심으로 설정, 이는 설정되는 중심의 변화가 없을 때까지 2,3번 과정 반복
K-means Clustering 특징 및 활용
- 랜덤 초기값 설정으로 인해 데이터의 분포가 독특한 경우 원하는 결과 나오지 않을 가능성
- 시간 복잡도가 가벼워 많은 계산량이 필요한 대용량 데이터에 적합
- 실제 문제에 적용할 때는 여러 번 클러스터링을 수행해 가장 빈번히 등장하는 군집에 할당
GMM (Gasussian Mixture Model)
전체 데이터의 확률분포가 여러 개의 정규분포(Normal Distrubution)의 조합으로 이루어져 있다고 가정하고, 각 분포에 속할 확률이 높은 데이터끼리 클러스터링 하는 방법
GMM의 원리
1) 학습 데이터의 분포와 유사한 k개의 정규 분포를 추출
2) 개별 데이터가 어떤 정규 분포에 속하는지 결정
(k개의 정규 분포는 k개의 클러스에 해당됨)
GMM의 진행 과정
(1) 각 클러스터마다 해당 클러스터가 선택될 확률과 평균, 그리고 분산을 랜덤하게 초기화
클러스터가 선택될 확률 = 데이터가 어떤 클래스에 속하는지
평균, 그리고 분산 = 클러스터의 형태
(2) 변화가 없을 때까지 모든 데이터에 대해서 아래 과정을 반복
- 클러스터가 선택될 확률, 평균, 분산이 주어짐
- 각 데이터가 어느 클러스터에 들어가는지 계산
=> 클러스터의 형태(평균, 분산)가 주어졌을 때 데이터가 어떤 클러스터에 들어갈지 계산
(3) 변화가 없을 때까지 모든 클러스터에 대해서 아래 과정을 반복
- 각 데이터가 어느 클러스터에 들어가는지가 주어짐
- 각 클러스터마다 선택될 확률, 평균, 분산 계산
=> 데이터가 어떤 클러스터에 들어갈지 주어졌을 때 클러스터의 형태(평균, 분산) 계산
클러스터링 타당성 평가
정답이 없기 때문에 실제값과 예측값의 오차 혹은 단순 정확도 지표로 평가할 수 없음
군집 간 거리, 군집의 지름, 군집의 분산을 고려하여 클러스터링 목표 달성 여부 확인
- Dunn Index: 군집 간 거리의 최소값/ 군집 내 요소 간 거리의 최대값
분자값이 클수록 군집 간 거리가 크고, 분모값이 작을수록 군집 내의 데이터들이 모여있다는 뜻
클수록 높은 성능을 의미함
- 실루엣(Silhouette) 지표: (a(i) - b(i))/ max(a(i),b(i))
얼마나 잘 군집화 되었는 지에 대한 정량적 평가
클러스터의 밀집 정도 계산
-1부터 1사이의 값을 가짐. 1에 가까울수록 높은 성능
a(i): i번째 데이터가 속한 군집과 가장 가까운 이웃군집을 택해서 계산한 값
b(i): i번째 데이터와 같은 군집에 속한 요소들 간 거리의 평균
출처: 앨리스 교육