본문 바로가기
AI/Machine-Learning

계층적 군집화(Hierarchical Clustering)

by Wikinist 2023. 9. 8.

계층적 군집화(Hierarchical Clustering)는 데이터 포인트를 계층적으로 그룹화하는 클러스터링 기술 중 하나입니다. 이 방법은 데이터를 트리 구조로 나타냅니다. 즉, 작은 군집이 큰 군집을 포함하는 계층 구조를 형성합니다. Hierarchical Clustering은 데이터 간의 유사성을 기반으로 군집을 형성하며, 이러한 유사성은 거리나 연결성을 기준으로 측정됩니다.

Hierarchical Clustering은 크게 두 가지 방법으로 수행됩니다.

병합 군집화 (Agglomerative Clustering)

이 방법은 각 데이터 포인트를 개별 군집으로 시작하고, 각 단계에서 가장 가까운 군집을 병합하여 더 큰 군집을 형성합니다. 이 과정은 모든 데이터 포인트가 하나의 큰 군집으로 합쳐질 때까지 반복됩니다. 병합 군집화는 "상향식" 방법으로 불립니다.

병합 군집화(Agglomerative Clustering)에서 군집을 병합하는 방법은 연결(Linkage) 방식에 따라 결정됩니다. 연결 방식은 어떤 두 개의 군집이 병합될 때, 그 군집 간의 거리를 어떻게 정의하고 결정할지를 나타내는 방법입니다. 다양한 연결 방식이 있으며, 주로 다음과 같은 네 가지 주요 연결 방식이 사용됩니다.

단일 연결 (Single Linkage)

두 군집 간의 거리를 해당 군집에 속한 데이터 포인트 간의 가장 작은 거리로 정의합니다. 즉, 두 군집에서 각각 가장 가까운 두 데이터 포인트 간의 거리를 고려하여 거리를 측정합니다. 이 방법은 이상치에 민감하고, 긴 연결을 형성할 수 있으므로 군집 간의 뾰족한 구조를 가지기도 합니다.

완전 연결 (Complete Linkage)

두 군집 간의 거리를 해당 군집에 속한 데이터 포인트 간의 가장 큰 거리로 정의합니다. 즉, 두 군집에서 각각 가장 먼 두 데이터 포인트 간의 거리를 고려하여 거리를 측정합니다. 이 방법은 뾰족한 군집을 형성하며, 이상치에 대해 덜 민감합니다.

평균 연결 (Average Linkage)

두 군집 간의 거리를 해당 군집에 속한 모든 데이터 포인트 간의 평균 거리로 정의합니다. 이 방법은 일반적으로 균형 잡힌 군집을 형성하며, 다른 연결 방식에 비해 중간 정도의 뾰족한 구조를 가집니다.

워드 연결 (Ward Linkage)

Ward 연결 방식은 군집을 병합할 때 군집 간 분산의 증가를 최소화하도록 거리를 정의합니다. 이 방식은 군집 간의 분산을 가장 작게 유지하려는 목표를 가지고 있으며, 비교적 균형 잡힌 군집을 형성합니다. Ward 연결은 다른 연결 방식과는 다르게 각 단계에서 군집 간 거리를 계산하므로 계산 비용이 높을 수 있습니다.

분할 군집화 (Divisive Clustering)

분할 군집화(Divisive Clustering)는 모든 데이터 포인트를 하나의 큰 군집으로 시작하고, 각 단계에서 군집을 둘 이상의 작은 군집으로 분할하는 방법입니다. 이 과정은 각 군집이 개별 데이터 포인트가 될 때까지 반복됩니다. 분할 군집화는 "하향식" 또는 "탑-다운" 방법으로도 알려져 있습니다.

분할 군집화에서 군집을 분할하는 방법은 주로 군집 간의 거리나 유사성을 기준으로 결정됩니다. 일반적으로 다음과 같은 방법을 사용하여 군집을 분할할 수 있습니다:

K-평균 클러스터링

데이터를 K개의 군집으로 분할하는 K-평균 알고리즘을 사용할 수 있습니다. 이 알고리즘은 데이터를 K개의 초기 중심점으로 시작하고, 각 데이터 포인트를 가장 가까운 중심점에 할당하여 군집을 형성합니다. 그 후 중심점을 업데이트하고, 군집을 재구성하며 이 과정을 반복하여 분할을 수행합니다.

계층적 분할

분할 군집화를 계층적으로 수행할 수도 있습니다. 이 방법은 병합 군집화의 역과정으로 생각할 수 있으며, 계층적으로 군집을 분할하여 작은 군집을 형성합니다.

밀도 기반 분할

밀도 기반 군집화 알고리즘인 DBSCAN과 같은 방법을 사용하여 군집을 분할할 수 있습니다. 이 방식은 데이터의 밀도를 기반으로 군집을 형성하며, 데이터 포인트 간의 밀도가 낮은 지역에서 군집을 분할합니다.

결과 및 장점

Hierarchical Clustering의 결과는 덴드로그램(Dendrogram)이라고 불리는 트리 구조로 시각화됩니다. 덴드로그램은 데이터의 계층 구조를 보여주며, 군집 간의 관계와 거리를 시각적으로 이해하기에 유용합니다.

Hierarchical Clustering의 장점은 다음과 같습니다:

  • 계층적 구조로 데이터를 표현하므로 군집 간의 관계를 이해하기 쉽습니다.
  • 군집의 수를 미리 지정할 필요가 없으며, 원하는 수의 군집을 얻을 수 있습니다.
  • 계층적 정보를 활용해 다양한 군집 수준에서 분석할 수 있습니다.
  • 그러나 Hierarchical Clustering은 대규모 데이터셋에는 적합하지 않을 수 있으며, 계산 비용이 높을 수 있습니다. 또한 덴드로그램을 통해 군집을 선택하는 것은 주관적인 결정이 필요할 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'AI > Machine-Learning' 카테고리의 다른 글

[NumPy] choose()  (0) 2023.09.08
계층적 클러스터링 함수  (0) 2023.09.08
[NumPy] newaxis  (0) 2023.09.08
중요한 피쳐 탐색(중요도)  (2) 2023.09.07
[Pandas] interpolate()  (0) 2023.09.07