70명의 AI 현업 전문가와 공동 개발한 60개⁺ 학습 노드로 배워요.
#인공지능 

군집 분석 (Cluster Analysis)

데이터 분석에서 군집 분석은 매우 중요한 역할을 합니다. 군집 분석은 유사한 개체들을 그룹화하여 전체 데이터 세트를 몇 개의 의미 있는 군집으로 나누는 기법입니다. 이를 통해 데이터의 구조를 파악하고 패턴을 발견할 수 있습니다.

2024-04-09 | 김정은

데이터 분석에서 군집 분석은 매우 중요한 역할을 합니다. 군집 분석은 유사한 개체들을 그룹화하여 전체 데이터 세트를 몇 개의 의미 있는 군집으로 나누는 기법입니다.
이를 통해 데이터의 구조를 파악하고 패턴을 발견할 수 있습니다.

군집 분석을 위한 개체 간 유사성, 비유사성 측정

군집 분석을 수행하기 위해서는 먼저 개체 간의 유사성이나 비유사성을 정의하고 측정해야 합니다.
유사성(similarity)이란 두 개체가 얼마나 비슷한지를 나타내는 척도입니다.
반대로 비유사성(dissimilarity)은 두 개체가 얼마나 다른지를 측정합니다. 일반적으로 유사성이 높을수록 같은 군집에 속할 가능성이 높고, 비유사성이 높을수록 다른 군집에 속할 가능성이 높습니다.

 

거리(distance) 역시 비유사성을 나타내는 지표로 활용됩니다. 두 개체 사이의 거리가 가까울수록 비유사성이 낮고, 거리가 멀수록 비유사성이 높다고 볼 수 있습니다.
실제 물리적 거리 외에도 추상적인 개념의 거리를 정의할 수 있습니다.

상관계수 (correlation coefficient)

가장 널리 사용되는 유사성 척도 중 하나는 상관계수(correlation coefficient)입니다.
상관계수는 두 변수 간의 선형 관계의 강도를 측정합니다. 값의 범위는 -1에서 1 사이이며, 1에 가까울수록 완전한 양의 상관관계, -1에 가까울수록 완전한 음의 상관관계를 나타냅니다. 0에 가까우면 두 변수 간에 선형 관계가 없음을 의미합니다.

예를 들어 두 사람의 영화 취향 데이터가 있다고 가정해봅시다. 한 사람이 좋아하는 영화에 다른 사람도 높은 점수를 주었다면 두 사람의 취향 간 상관계수는 1에 가까운 양의 값을 가질 것입니다.
반대로 한 사람이 좋아하는 영화를 다른 사람이 싫어한다면 상관계수는 -1에 가까운 음의 값이 될 것입니다.

또 다른 유사성 척도는 코사인 유사도(cosine similarity)입니다. 코사인 유사도는 두 벡터 사이의 코사인 값으로, 0에서 1 사이의 값을 가집니다.
두 벡터가 정확히 동일하면 코사인 유사도는 1, 완전히 다르면 0이 됩니다. 텍스트 마이닝이나 추천 시스템 등에서 코사인 유사도를 많이 사용합니다.

예를 들어 영화 A와 영화 B에 대한 두 사람의 평점 데이터가 벡터로 표현되어 있다고 가정해봅시다.
두 사람의 평점 벡터가 정확히 일치하면 코사인 유사도는 1이 되고, 완전히 다르면 0이 됩니다.
실제로는 0과 1 사이의 값을 가지며, 값이 클수록 두 사람의 취향이 유사함을 의미합니다.

거리 (distance)

비유사성 척도 중 가장 대표적인 것은 거리(distance) 개념입니다. 거리가 가까울수록 유사성이 높고, 거리가 멀수록 유사성이 낮습니다.

유클리드 거리 (Euclidean distance)

유클리드 거리(Euclidean distance)는 두 점 사이의 직선 거리를 의미합니다.
예를 들어 두 사람의 위치 데이터가 $ (x_1, y_1), (x_2, y_2) $와 같이 2차원 공간상의 점으로 주어졌다고 가정해봅시다.
이 때 두 사람 사이의 유클리드 거리는 다음과 같이 계산할 수 있습니다:

    $$ d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$

유클리드 거리가 가까울수록 두 사람은 서로 가까운 위치에 있으므로 유사성이 높고, 거리가 멀수록 유사성이 낮습니다.

 

맨해튼 거리(Manhattan distance)

맨해튼 거리(Manhattan distance)는 두 점 사이를 가로나 세로 방향으로만 이동 가능할 때의 최단 경로 상의 길이를 말합니다.
2차원 공간에서 맨해튼 거리는 다음과 같이 계산됩니다:

    $$ d = |x_2 - x_1| + |y_2 - y_1| $$

도시에서 두 장소 사이의 거리를 구할 때 길이 아닌 블록 수를 세는 것과 같은 개념입니다.
유클리드 거리와 마찬가지로 맨해튼 거리가 가까울수록 유사성이 높고, 멀수록 유사성이 낮습니다.

이 외에도 자쿼드 유사계수, 다이스 계수 등 다양한 유사성 척도들이 있습니다.
데이터의 특성에 따라 적절한 유사성 척도를 선택하는 것이 중요합니다. 예를 들어 이진 데이터에는 자쿼드 유사계수나 다이스 계수가 적합할 수 있습니다.

군집 분석에서는 유사성이나 비유사성 척도를 이용하여 데이터 포인트 간의 유사성을 계산합니다.
그런 다음 유사성이 높은 데이터 포인트들을 하나의 군집으로 묶습니다. 이렇게 전체 데이터 세트를 의미 있는 여러 개의 군집으로 나눌 수 있습니다.

K-평균 군집화 (K-means clustering)

가장 기본적인 군집 알고리즘 중 하나는 K-평균 군집화(K-means clustering)입니다.
K-평균 군집화는 사전에 지정된 K개의 군집 중심점을 기준으로 데이터 포인트들을 가장 가까운 군집에 할당하는 방식입니다. 알고리즘은 다음 단계를 반복적으로 수행합니다.

  1. K개의 초기 군집 중심점을 임의로 선택
  2. 각 데이터 포인트를 가장 가까운 군집 중심점에 할당
  3. 할당된 데이터 포인트들의 평균을 새로운 군집 중심점으로 계산
  4. 2-3 단계를 군집 중심점이 수렴할 때까지 반복

이 알고리즘에서는 데이터 포인트 간 거리를 계산해야 하므로, 유클리드 거리나 맨해튼 거리 등의 거리 척도가 사용됩니다.

계층적 군집화 (hierarchical clustering)

또 다른 대표적인 군집 알고리즘은 계층적 군집화(hierarchical clustering)입니다. 이 방법은 데이터를 계층 구조로 군집화하는 방식입니다.
두 가지 유형이 있는데, 병합 군집화(agglomerative clustering)와 분할 군집화(divisive clustering)입니다. 병합 군집화는 초기에 각 데이터 포인트를 하나의 군집으로 간주한 뒤, 가장 가까운 두 군집을 합치는 방식으로 진행됩니다.
분할 군집화는 이와 반대로 초기에 모든 데이터 포인트를 하나의 큰 군집으로 보고, 이를 가장 먼 두 군집으로 분할하는 식으로 진행됩니다.

계층적 군집화에서는 군집 간 거리를 측정하는 방법을 정의해야 합니다. 대표적인 방법으로는 단일 연결(single linkage), 완전 연결(complete linkage), 평균 연결(average linkage) 등이 있습니다.

단일 연결은 두 군집 내의 가장 가까운 데이터 포인트 간 거리를 군집 간 거리로 정의합니다. 완전 연결은 두 군집 내의 가장 먼 데이터 포인트 간 거리를 사용합니다.
평균 연결은 두 군집에 속한 모든 데이터 포인트 간 거리의 평균을 군집 간 거리로 삼습니다.

DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 알고리즘

밀도 기반 군집화 방법도 있는데, 대표적인 것이 DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 알고리즘입니다.
DBSCAN은 밀집 지역을 군집으로 인식하고 노이즈나 이상치 데이터는 제외시킵니다. 이 알고리즘에서는 eps(epsilon) 반경 내 최소 포인트 수인 minPts를 지정해야 합니다.

마치며

이처럼 다양한 군집 알고리즘들이 있지만, 적절한 유사성/비유사성 척도를 선택하는 것이 중요합니다.
데이터의 특성에 따라 상관계수, 코사인 유사도, 유클리드 거리, 맨해튼 거리 등을 사용할 수 있습니다.

또한 차원의 저주 문제로 인해 고차원 데이터에서는 거리 기반 접근법이 잘 작동하지 않을 수 있습니다.
이런 경우 데이터 변환이나 차원 축소 기법을 사용하여 저차원 공간으로 데이터를 사영(projection)할 수 있습니다.

군집 분석 결과를 평가하고 해석하는 것 역시 중요합니다. 실루엣 계수, 데이비스 보울딘 지수 등의 지표를 활용할 수 있습니다.
또한 도메인 지식을 바탕으로 군집의 의미를 파악하는 것도 필요합니다.

이렇게 군집 분석에서 유사성, 비유사성, 거리 척도를 이해하고 적절히 선택하는 것은 매우 중요한 과정입니다.
데이터의 특성과 분석 목적에 맞는 척도를 사용하면 보다 의미 있는 군집 결과를 얻을 수 있습니다.