머신러닝/이론
군집화(Clustering)
yc7764
2022. 12. 6. 18:40
군집화란?
- 비지도학습의 대표적인 기술로 x에대한 레이블이 지정 되어있지 않은 데이터를 그룹핑하는 분석 알고리즘
- 데이터들의 특성을 고려해 데이터 집단(클러스터)을 정의하고 데이터 집단의 대표할 수 있는 중심점을 찾는 것으로 데이터 마이닝의 한 방법
- 클러스터란 비슷한 특성을 가진 데이터들의 집단으로 데이터의 특성이 다르면 다른 클러스터에 속함
- K-Means Clustering, Mean Shift, DBSCAN, Gaussian Mixture Model 등이 있음
1. K-Means Clustering
- 군집 중심점(centroid)라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 거리 기반 군집화기법
- 다른 알고리즘에 비해 비교적 쉽고 간결하여, 일반적으로 군집화에서 가장 많이 사용되는 알고리즘
- 초기 클러스터의 수를 직접 결정해야하며 성능에 많은 영향을 끼침
- K-Means Clustering 알고리즘의 과정
- K개의 임의의 중심점(centroid)을 배치
- 각 데이터들을 가장 가까운 중심점으로 할당(일종의 군집을 형성)
- 군집으로 지정된 데이터들을 기반으로 해당 군집의 중심점을 업데이트
- 더이상 중심점이 업데이트 되지 않을 때까지 과정 2, 3을 반복
- K-Means Clustering의 초기화 기법
- 무작위 분할 기법
- Forgy 초기화 기법
- MacQueen 기법
- Kaufman 기법
2. Mean Shift
- Sliding Window의 반경(정해진 시야)내에서 데이터의 분포가 높은 곳으로 단계적으로 중심점이 이동하는 군집화 기법
- K-Means Clustering과 유사하지만 거리 중심이 아니라 데이터가 모여있는 밀도가 가장 높은쪽으로 군집 중심점을 이동하면서 군집화를 수행함
- 데이터 간의 거리가 아닌 데이터의 분포도를 이용해 군집 중심점을 결정
- K-Means와 다르게 군집의 개수를 사전에 지정하지 않아도 되며, 비교적 이상치의 영향이 크지 않음
- 데이터셋의 형태를 특정 형태, 특정 분포도 기반의 모델로 가정하지 않기 때문에 좀 더 유연한 군집화가 가능Mean Shift 알고리즘의 과정
- Sliding Window의 크기를 정의하고, 중심점(centroid)를 임의로 설정
- 정해진 크기의 window 안에서 데이터의 분포가 높은 방향으로 중심점을 이동
- Sliding Window가 중첩될 경우, 데이터 분포도가 높은 window를 유지
- Cluster의 이동이나 변화가 없을 때까지 과정 2, 3을 반복
3. DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
- 데이터의 분포가 세밀하게 몰려 있어서 밀도가 높은 부분을 중심으로 데이터 그룹핑을 하는 밀도 기반 군집화 기법
- 군집의 개수를 사전에 지정하지 않아도 되며, 군집과 노이즈(Noise) 데이터를 구분할 수 있음
- 복잡한 기하학적 분포도를 가진 데이터를 군집화 할 수 있음
- 데이터의 밀도가 다양한 경우 적합하지 않음
- DBSCAN 알고리즘의 과정
- 데이터를 군집하기 위한 반경(Epsilon)을 정의
- 반경 내에서 군집과 이상치를 구분하기 위한 MinPoints를 정의
- 임의의 point의 반경 내에 MinPoints 이상의 데이터가 존재하는 지 확인
- 만약 존재한다면 이웃 데이터를 군집 내에 포함시키고 군집 내 속한 다른 point에 대해 과정 3, 4를 반복
- 모든 데이터에 과정 3, 4를 반복하여 군집 데이터와 노이즈 데이터를 구분
- Ex) Epsilon = 100, MinPoints = 4일 경우
- P1의 주변 반경 내에 4개 이상의 데이터가 존재하므로 군집이 형성되며 Core Point로 지정
- P2 역시 같은 이유로 Core Point로 지정되며 P1과 P2는 서로 군집의 일부가 되므로 하나의 군집으로 연결
- P3의 경우 주변에 2개의 데이터만 존재하므로 Border Point로 지정되고 주변 P2 군집에 포함
- P4의 중심으로 어떤 데이터도 포함되지 않고 주변 군집에 포함되지 못해 어느 군집에도 속하지 못하므로 Noise Point로 지정
4. EM Clustering using Gaussian Mixture Model(GMM)
- 군집 모양을 정의하기 위해 평균, 분산을 활용하고 타원의 형태로 군집화하는 기법
- K-Means에 비해 구현할 수 있는 군집의 모양이 유연함
- 복수의 군집내에 포함된 데이터에 대해 어느 군집에 속할 확률 분포를 알 수 있음
- 데이터 A가 군집 1에 속할 확률 X와 군집 2에 속할 확률 Y의 형태로 분석 가능
- K-Means의 경우 군집 1에 속하거나 군집 2에 속하는 yes or no의 분석을 수행
- 다른 알고리즘에 비해 비교적 계산이 복잡하고 느림
- 현실에 존재하는 복잡한 데이터 분포가 K개의 가우시안 분포를 혼합하여 표현
- 혼합 가우시안 분포(Gaussian Mixture)에서 개별 유형의 가우시안 분포 K개를 추출하고 각 데이터가 어느 분포에 속하는지를 추정, K개의 개별 가우시안 분포가 각 K개의 군집이 됨
- GMM에는 두 가지의 추정이 필요
- 개별 가우시안 분포 곡선을 추정
- 현재 데이터가 어느 분포에 속할 것인지 확률 분포를 추정
- EM Clustering using Gaussian Mixture Model의 과정
- 군집의 개수를 지정
- 임의의 Gaussian Distribution Parameter를 설정
- 모든 데이터에 대해 각각의 군집에 속할 확률을 계산
- 각각의 군집에 속한 데이터를 통해 Gaussian Distribution Parameter를 업데이트
- 각 군집의 parameter가 변화하지 않을 때까지 과정 3, 4를 반복
참고사이트
https://daebaq27.tistory.com/49
[머신러닝/ML] 군집화 (Clustering)
군집화 (Clustering) 군집화(Clustering)는 비지도학습의 한 예시로, 어떠한 label 없이 데이터 내에서 거리가 가까운 것들끼리 각 군집들로 분류하는 것이다 (분류라고 표현했지만, 지도학습인 classificat
daebaq27.tistory.com
[ML101]#8.Clustering (2)
지난글 [ML101]#7.Clustering(1)에서는 대표적인 Unsupervised learning 모델의 하나인 clustering의 개요, 유형에 대해 알아봤습니다. 이번 글에서는 clustering의 대표적인 모델인 K-means clustering / Mean-shift clusterin
brunch.co.kr