군집화에서 가장 일반적
군집 중심정이라는 특정한 임의 지점을 선택하여 해당 중심에 가까운 포인트들을 선택하는 기법
선택된 포인트의 평균 지점으로 이동하고 이동된 중심점에서 다시 가까운 포인트 선택, 다시 중심점을 평균 지점으로 이동하는 프로세스를 반복적으로 수행
모든 데이터 포인트에서 더이상 중심점 이동이 없을 경우 반복을 멈추고 해당 중심점에 속하는 데이터 포인트들을 군집화
사이킷런운 KMeans 클래스 제공
군집화 수행 완료(transform) 후 주요 속성 정보
각 군집 간의 거리가 얼마나 효율적으로 분리되어 있는지
효율적으로 잘 분리됐다는 것은 다른 군집과의 거리는 떨어져 있고 동일 군집끼리의 데이터는 서로 가깝게 잘 뭉쳐 있음을 의미
실루엣 계수를 기반으로 함
실루엣 계수는 개별 데이터가 가지는 군집화 지표
특정 데이터 포인트의 실루엣 계수는 해당 데이터 포인트와 같은 군집 내에 있는 데이터 포인트와의 거리를 평균한 값 a(i), 해당 데이터 포인트가 속하지 않은 군집 중 가장 가까운 군집과의 평균 거리 b(i)를 기반으로 계산
두 군집 간의 거리가 얼마나 떨어져 있는가는 b(i) - a(i), 이 값을 정규화하기 위해 max(a(i), b(i)) 값으로 나눔
실루엣 계수는 -1에서 1 사이의 값을 가지며 1로 가까워질수록 근처 군집과 더 멀리 떨여져 있다는 의미, 0에 가까울 수록 근처의 군집과 가까워 진다는 의미, - 값은 아예 다른 군집에 데이터 포인트가 할당되었음을 의미
클러스터링 군집화 수에 따른 각 군집 별 실루엣 계수 시각화, 및 데이터 포인트 별 클러스터링 된 결과를 시각화하여 확인
데이터 건 수가 많을 경우 군집별로 임의의 데이터를 샘플링하여 실루엣 계수를 평가하는 방안 고민
K-평균과 유사하게 중심을 군집의 중심으로 지속적으로 움직이면서 군집화를 수행
K-평균은 중심점을 정하고 중심에 소속된 데이터의 평균 거리를 중심으로 이동하는데 반해 평균 이동은 중심을 데이터가 모여있는 밀도가 가장 높은 곳으로 이동
평균 이동은 데이터의 분포도를 이용해 군집 중심점을 찾음
군집 중심은 데이터 포인트가 모여 있는 곳이라는 생각에서 착안
확률 밀도 함수(probability density function)를 이용
가장 집중적으로 데이터가 모여있어 확률 밀도 함수가 피크인 점을 군집 중심점으로 선정
일반적으로 주어진 모델의 확률 밀도 함수를 찾기 위해 KDE(Kernel Density Estimation)을 이용
평균 이동 알고리즘은 임의의 포인트에서 시작하여 이러한 피크 포인트를 찾을 때 까지 KDE를 반복적으로 적용하여 군집화 수행
평균 이동은 K-평균과 다르게 군집의 개수를 지정할 필요가 없음
대역폭의 크기에 따라 알고리즘 자체에서 군집의 개수를 최적으로 선정
이 때문에 대역폭 크기를 어떤 값으로 설정하냐에 따라 군집화의 품질이 결정됨
사이킷런은 MeanShift 클래스로 평균 이동 군집화 제공
데이터 분포에 따라 대역폭(bandwidth) 값의 변화는 군집화 개수에 큰 영향을 미침
최적화된 bandwidth 값을 찾기 위해 estimate_bandwidth()를 제공
데이터 세트의 형태를 특정 형태로 가정한다든가, 특정 분포도 기반의 모델로 가정하지 않기 때문에 좀 더 유연한 군집화가 가능함
이상치 영향이 적으며 미리 군집의 개수를 정할 필요 없음
알고리즘 수행 시간이 오래 걸리며 무엇보다 bandwidth 크기에 따른 군집화 영향도가 큼
일반적으로 평균 이동 군집화 기법은 업무 기반의 데이터 세트보다는 컴퓨터 비전 영역에서 잘 사용됨
이미지나 영상 데이터에서 특정 개체를 구분하거나 움직임을 추적하는 데 뛰어난 역할 수행
군집화를 적용하고자 하는 데이터가 여러 개의 가우시안 분포(정규 분포) 모델을 섞어서 생성된 모델로 가정하여 수행하는 방식
정규 분포는 평균을 중심으로 높은 데이터 분포도를 가지며 좌우 표준편차 1에 전체 데이터의 68.27%, 2에 95.45%를 가지고 있음
평균이 0이고 표준편차가 1인 정규분포를 표준 정규분포라고 함
전체 데이터 세트는 서로 다른 정규 분포 형태를 가진 여러 가지 확률 분포 곡선으로 구성될 수 있으며 이러한 서로 다른 정규 분포에 기반하여 군집화를 수행
데이터 세트를 구성하는 여러 개의 정규 분포 곡선을 추출, 개별 데이터가 이 중 어떤 정규 분포에 속하는지 결정하는 방식
이 방식을 GMM에서는 모수 추정이라고 함
이러한 모수 추정을 위해 GMM은 EX(Expectation and Maximization) 방법 적용
사이킷런은 GaussianMixture 클래스 지원
GMM은 확률 기반, K-평균은 거리 기반
n_components는 gaussian mixture의 모델 총 개수
군집 개수 선정에 중요한 역할
KMeans는 원형 범위에서 군집화 수행
데이터 세트가 원형의 범위를 가질수록 KMeans 군집화 효율은 더 높아짐
KMeans는 대표적으로 데이터가 길쭉한 타원형으로 늘어진 경우 군집화 수행 능력이 떨어짐
GMM은 KMeans와 다르게 군집의 중심 좌표를 구할 수 없기 때문에 군집 중심 표현이 시각화될 수 없음
GMM의 경우 KMeans보다 유연하게 다양한 데이터 세트에 잘 적용될 수 있으나 수행 시간이 오래 걸린다는 단점이 있음
밀도 기반 군집화의 대표적인 알고리즘
데이터의 분포가 기하학적으로 복잡한 데이터 세트에도 효과적인 군집화 가능
DBSCAN 구성하는 주요 파라미터
입실론 주변 영역 내 포함되는 최소 데이터 개수를 충족시키는가 아닌가에 따라 데이터 포인트를 정의
입실론 주변 영역 최소 데이터 개수를 포함하는 밀도 기준을 충족시키는 데이터인 핵심 포인트를 연결하면서 군집화를 구성하는 방식