On the journey of

[자진프] 클러스터링 본문

학교 프로그램

[자진프] 클러스터링

dlrpskdi 2023. 9. 29. 08:12

클러스터(cluster)라는 말은 일단 '부분집합'을 의미한다. 즉 원 데이터를 부분집합으로 쪼개는 것을 의미하는 것. 쪼개는 기준이 다양한 만큼 알고리즘 종류도 다양하다.

  1. K-MEANS Clustering

K-Means는 제일 유명한 알고리즘이다. 제일 먼저 원 데이터 상에서 클래스(그룹)를 선택한 후, 각 데이터 분포(점으로 표시되는) 와 그룹 간의 거리를 계산하여 분류하게 된다. 복잡도는 O(n)이나, 무작위 선택으로 시작하기 때문에 결과 상 일관성이 부족할 수 있다(실행할 떄마다 클러스터링 결과가 다를 수 있다). 

이미지 출처 https://thebook.io/006789/0133/

K-Means와 유사한 알고리즘으로 K-Medians가 있는데 평균이 아닌 '그룹의 중앙벡터'를 사용한다는 점에서 차이가 있다. Median 벡터를 계산하게 되면 반복 시 이상치에는 덜 민감하겠지만 데이터셋이 커짐에 따라 속도가 급격히 느려진다.

 

2. Mean-Shift Clustering

데이터 분포(점으로 표시된 것들) 클러스터링은 데이터 포인트의 밀집된 영역을 찾고자 진행되는 클러스터링으로, 각 그룹의 중심점을 찾는 것이 목표인 알고리즘. 랜덤으로 선정된 점을 기준으로 그룹이 정해지며, 데이터 포인트가 있는 슬라이딩 윈도우에 따라 데이터 포인트가 모인다. 

출처 http://www.nextobe.com/2020/05/14/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B3%BC%ED%95%99%EC%9E%90%EA%B0%80-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%A0-5%EA%B0%80%EC%A7%80-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81-%EC%95%8C%EA%B3%A0%EB%A6%AC/

특히 이런 경우 평균 이동이 자동적으로 감지되기 때문에 클러스터 수를 선택할 필요가 없음(자동설정됨!) 

3. DBSCAN

DBSCAN 군집화는 특정 공간 내 데이터의 밀도 차이를 기반으로한 알고리즘으로, 복잡한 기하학적 분포도를 가진 데이터에 대해서도 군집화를 잘 수행한다. DBSCAN 역시 클러스터의 개수를 미리 지정할 필요가 없으며 어떤 군집에도 속하지 않는 포인트를 구분할 수 있다는 특징이 장점이다.

[주요 파라미터]

- 입실론 주변 영역(epsilon) : 개별 데이터를 중심으로 입실론 반경을 가지는 원형의 영역 → eps

- 최소 데이터 개수(min points) : 핵심 포인트가 되기 위해 입실론 주변 영역에 포함되는 타 데이터의 최소 개수 → min_samples

[데이터 포인트 정의]

데이터 포인트는 입실론 주변 영역 내 포함되는 최소 데이터 개수를 충족 시키는 지의 여부에 따라 나뉘어집니다.

출처 https://blog.naver.com/maendeul

- 핵심 포인트(Core Point) : 주변 영역 내 최소 데이터 개수 이상의 타 데이터를 가지고 있을 경우

- 이웃 포인트(Neighbor Point) : 주변 영역 내 위치한 타 데이터

- 경계 포인트(Border Point) : 주변 영역 내 최소 데이터 개수 이상의 이웃 포인트를 가지고 있지 않지만

핵심 포인트를 이웃 포인트로 가지고 있는 데이터

- 잡음 포인트(Noise Point) : 최소 데이터 개수 이상의 이웃 포인트를 가지고 있지 않으며, 핵심 포인트도 이웃 포인트로 가지고 있지 않는 데이터

이미지 출처 https://blog.naver.com/maendeul

 

4. 계층적 클러스터링

Agglomerative Hierarchical Clustering

Hierarchical 클러스터링 알고리즘은 실제로 하향식 또는 상향식의 두가지 범주로 나뉜다. 상향식 알고리즘은 각 데이터 포인트를 처음에는 단일 클러스터로 본 다음, 모든 클러스터가 모든 데이터 포인트를 포함하는 단일 클러스터로 병합될 때까지 클러스터 쌍을 병합한다.이 클러스터 계층 구조는 트리 (또는 dendrogram)로 표시되는데, 그 그림은 아래와 같다. 

출처 http://www.nextobe.com/2020/05/14/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EA%B3%BC%ED%95%99%EC%9E%90%EA%B0%80-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%A0-5%EA%B0%80%EC%A7%80-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81-%EC%95%8C%EA%B3%A0%EB%A6%AC/

Hierarchical 클러스터링에서는 클러스터 수를 지정할 필요가 없으며 트리를 구축 할 때 가장 적합한 클러스터 수를 선택할 수도 있다. 또한 이 알고리즘은 거리 메트릭의 선택에 민감하지 않다. 이들 모두는 동등하게 잘 작동하는 경향이 있는 반면 다른 클러스터링 알고리즘에서는 거리 메트릭의 선택이 중요하게  작용하며, K-Means와 GMM의 선형 복잡성과 달리 O (n³) 의 시간 복잡성을 가지므로 효율성이 낮아지는 단점이 있다..