1. 정의

- 클러스터링은 군집화로 데이터 클러스터링이란 수많은 데이터들을 몇가지로 구분하여 하나의 의미를 갖는 데이터로 군집화하는 것이고 빅데이터에서 사용되는 가장 핵심적인 기술이다.

 

2. K-Means Clustering

- 가장 단순하고 구현이 쉬운 알고리즘

- 정해놓은 갯수만큼 군집화가 진행됨

 

  1. 위의 그림과 같이 최초에는 랜덤한 위치에서 무작위로 위치에서 군집을 시작
  2. 각 항목들과 해당 군집의 중심점을 비교하여 가장 가까운 군집으로 소속을 변경
  3. 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가 아래 사진처럼 잘못 클러스터링 되는 경우를 줄여준다.

K-Means 클러스터링의 실패한 사례

 

- 군집의 중심점이 이동함에 따라 GMM의 파라미터 값도 지속적으로 변화한다.

- 서로 겹치는 지점에 있는 값들은 양쪽에 확률적으로 속해있다고 볼 수 있다.

GMM을 사용한 EM 클러스터링

 

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

+ Recent posts