1. 정의
- 클러스터링은 군집화로 데이터 클러스터링이란 수많은 데이터들을 몇가지로 구분하여 하나의 의미를 갖는 데이터로 군집화하는 것이고 빅데이터에서 사용되는 가장 핵심적인 기술이다.
2. K-Means Clustering
- 가장 단순하고 구현이 쉬운 알고리즘
- 정해놓은 갯수만큼 군집화가 진행됨
- 위의 그림과 같이 최초에는 랜덤한 위치에서 무작위로 위치에서 군집을 시작
- 각 항목들과 해당 군집의 중심점을 비교하여 가장 가까운 군집으로 소속을 변경
- 2번을 계속 반복하여 군집을 생성
3. Mean-Shift Clustering
- 임의의 마스크 크기에서 밀도가 가장 높은 곳으로 반복하며 이동하여 군집의 중심점을 찾는 알고리즘
- k-means와 달리 특정갯수가 필요한 것이 아니고 화면 전체에 여러개의 중심점을 초기화하면 결국
각각이 몇개의 중심점으로 수렴됨
4. DBSCAN
- Density-Based Spatial Clustering of Applications with Noise
- mean-shift처럼 점차 shift 해가면서 중심점을 찾는 알고리즘
- 하지만 mask를 사용하여 너무 떨어져 있는 개체는 클러스터링에 반영하지 않고 클러스터링 되지 않은 개체들은
잡음처리 됨
5. Gaussian Mixture Models (GMM)을 사용한 Expectation-Maximization (EM) 클러스터링
- 가우스인 필터를 이용한 K-Means 클러스터링으로 K-Means가 아래 사진처럼 잘못 클러스터링 되는 경우를 줄여준다.
- 군집의 중심점이 이동함에 따라 GMM의 파라미터 값도 지속적으로 변화한다.
- 서로 겹치는 지점에 있는 값들은 양쪽에 확률적으로 속해있다고 볼 수 있다.
5. Agglomerative Hierarchical Clustering
- 거리를 계층으로 나누어 단계별로 올라가면서 군집화한다.
- 상향식이 있고 하향식이 있다.
- 이렇게 단계별로 클러스터링한 것들은 트리 구조로 저장하고 나중에 원하는 갯수에 맞게 군집을 나눈다.
6. 여러 클러스터링 비교 결과
- 사진과 같이 데이터들의 분포에 따라 최적화되는 클러스터링 모델이 다른 것을 볼 수 있다.
- 시간 복잡도가 다 다르기 때문에 가장 군집을 잘 나누면서 시간 복잡도가 가장 낮은 모델을 사용하는 것이 바람직하다.
원본: https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68
'일상 > 기본' 카테고리의 다른 글
Parsing-Test) 요기요 사이트 (2) | 2019.04.03 |
---|---|
30분 공부하기) 챗봇 (0) | 2019.03.30 |
c# winhttp 유니코드 에러 (0) | 2019.03.27 |
php Excel 업로드 (0) | 2019.03.27 |
IT상식) 프레임워크란 (0) | 2019.03.26 |