본문 바로가기
[AI] - Machine Learning

# 15. 군집화 알고리즘 (Clustering Algorithm)

by Bebsae 2021. 12. 6.

이번 포스트에서는 비지도 학습 방법 중 군집화에 대해 알아보고, 군집화 알고리즘 유형에 대해 알아보겠다.

그렇다면 군집화는 무엇을 의미할까? 군집화는 다른 그룹보다 특성이 비슷한 데이터들끼리 그루핑하는 것을 의미한다. 예를 들어, 이 글을 읽는 독자가 사장이라고 가정해보자. 사장이 고객의 등급에 따른 새로운 비즈니스 전략을 세우려고 한다. (예를 들면, VVIP, VIP, 일반) 이 때, RFM (Recency, Frequency, Monetary) 분석을 통해 고객의 등급(=군집)을 분류할 수 있다.

RFM 분석 / 출처 : https://medium.com/analytics-vidhya/partitional-clustering-181d42049670

  • Recency : 고객이 얼마나 최근에 구매하였는가?
  • Frequency : 고객이 얼마나 자주 구매하였는가?
  • Monetary : 고객이 얼마나 많이(크게) 구매하였는가?

즉, 이 세 가지 특성을 통해 클러스터링 알고리즘을 수행하면 원하는 결과를 얻을 수 있다.

.
.
.

클러스터링 알고리즘 유형 / 출처 : https://ai-creator.tistory.com/591


우리가 군집에 따른 차별화된 비즈니스 전략을 적용하는 것은 군집화를 하고난 다음 단계이다. 그러므로 우리는 상황에 따른 적합한 군집화 알고리즘 적용을 위해 여러 가지 알고리즘 유형을 파악해야 한다.

[Partitioning-Based]
Partitional clustering (or partitioning clustering) are clustering methods used to classify observations, within a data set, into multiple groups based on their similarity. The algorithms require the analyst to specify the number of clusters to be generated. (출처 : https://www.datanovia.com/en/courses/partitional-clustering-in-r-the-essentials/)

유사도를 기반으로 여러 그룹으로 데이터셋을 분류하는 방법이다. Partitional clustering 알고리즘은 생성할 클러스터의 갯수를 요구한다.

[Hierarchical-Based]

Dendrogram / 출처 : https://www.displayr.com/what-is-hierarchical-clustering/

Hierarchical clustering, also known as hierarchical cluster analysis, is an algorithm that groups similar objects into groups called clusters. The endpoint is a set of clusters, where each cluster is distinct from each other cluster, and the objects within each cluster are broadly similar to each other.
(출처 : https://www.displayr.com/what-is-hierarchical-clustering/)

엔드포인트의 개체들을 유사한것끼리 묶어나가는 방법이다. (Bottom-Up) Dendromgram을 생성한다.

[Density-Based]

DBSCAN / 출처 : https://www.researchgate.net/figure/An-Example-Illustrating-the-Density-Based-DBSCAN-Clustering-Method-Applied-to-SMLM-Data_fig4_342141592

Density-Based Clustering refers to unsupervised learning methods that identify distinctive groups/clusters in the data, based on the idea that a cluster in a data space is a contiguous region of high point density, separated from other such clusters by contiguous regions of low point density. The data points in the separating regions of low point density are typically considered noise/outliers.
(출처 : https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_211)

데이터 공간의 클러스터가 저밀도 지역의 클러스와는 분리되는 고밀도 지역이라는 아이디어를 기반으로 데이터의 그룹을 식별하는 비지도 학습 방법이다. 저밀도의 데이터 포인트는 일반적으로 노이즈나 이상치로 간주된다.

[Grid-Based]
Density-based and/or grid-based approaches are popular for mining clusters in a large multidimensional space wherein clusters are regarded as denser regions than their surroundings
The computational complexity of most clustering algorithms is at least linearly proportional to the size of the data set. The great advantage of grid-based clustering is its significant reduction of the computational complexity, especially for clustering very large data sets.
(출처 : https://epubs.siam.org/doi/abs/10.1137/1.9780898718348.ch12?mobileUi=0)

밀도 기반, 그리드 기반 접근 방식은 주변보다 밀도가 높은 영역으로 간주되는 거대한 다차원 공간에서의 클러스터링에 많이 사용된다. 대부분의 클러스터링 알고리즘의 계산 복잡도는 최소한 데이터셋의 사이즈와 선형적인 관계를 뛰고 있다. 그리드 기반의 클러스터링은 특히 거대한 데이터셋의 클러스터링에 대해 계산 복잡도를 감소시킨대에 이점이 있다.


앞서 말했듯, 군집화는 비지도 학습으로써 정답 데이터가 필요하지 않다. 그렇기에 군집화 알고리즘의 결과물은 N개의 군집들만 존재할 뿐 명확한 정답이 아니다. 그리고 각 군집들에 대한 정의는 사용자가 직접 정의를 해주어야 하기 때문에 군집화에 대한 역량은 본인의 역량이 가장 중요하다. (데이터들의 군집을 가장 잘 표현할 수 있는 정의와 군집의 갯수를 잘 설정해주어야 한다.)

좀더 직관적으로 설명하면, 컴퓨터는 데이터 포인트들의 기하학적인 거리들에 근거하여 군집을 묶었을 뿐 각 군집이 무엇을 의미하는지는 모른다는 이야기이다.

다음 포스트에서는 군집화의 대표적인 알고리즘인 K-Means Clustering에 대해 다루겠다.

댓글