Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

클러스터링의 핵심 요소란? 데이터 군집 분석 시 반드시 알아야 할 7가지

군집화(clustering)는 물리적 또는 추상적인 객체들의 집합을 성격이 비슷한 클래스 단위로 묶는 과정을 의미합니다. 클러스터(cluster)란 동일한 클러스터 내부의 객체들은 서로 유사하고, 다른 클러스터에 속한 객체들과는 뚜렷하게 구별되는 데이터 객체들의 집합을 말합니다. 여러 응용 분야에서 하나의 클러스터는 하나의 그룹으로 취급될 수 있으며, 클러스터 분석은 인간에게 매우 본질적인 활동 중 하나입니다.

클러스터 분석은 다양한 측정 기준에 따라 유사한 레코드들을 그룹으로 묶는 데 활용됩니다. 핵심 설계 포인트는 분석 목적에 실질적으로 도움이 되도록 클러스터를 정의하는 것입니다. 이러한 기법은 천문학, 고고학, 의학, 화학, 교육학, 심리학, 언어학, 사회학 등 폭넓은 분야에서 이미 활발히 사용되고 있습니다.

클러스터링에서 고려해야 할 주요 요소

1. 데이터 분포 (Data Distribution)

일부 군집화 기법은 데이터가 특정 유형의 분포를 따른다고 가정합니다. 나아가 데이터가 여러 분포의 결합으로부터 생성된 것으로 모델링될 수 있으며, 이때 각 클러스터는 하나의 분포에 대응한다고 봅니다.

2. 형태 (Shape)

클러스터 중 일부는 사각형이나 구형처럼 규칙적인 형태를 지니지만, 실제로는 임의의(arbitrary) 형태를 가지는 경우가 더 흔합니다. DBSCAN이나 단일 연결(single link) 같은 기법은 임의 형태의 클러스터도 잘 처리할 수 있는 반면, 프로토타입 기반 방식이나 완전 연결(complete link), 그룹 평균(group average) 같은 일부 계층적 기법은 그렇지 못합니다.

3. 크기의 차이 (Differing Sizes)

K-means를 비롯한 여러 군집화 방법은 클러스터들의 크기가 서로 크게 다를 때 좋은 성능을 보이지 못합니다.

4. 밀도의 차이 (Differing Densities)

클러스터 간 밀도 차이가 매우 클 경우, DBSCAN이나 K-means 같은 방법에서 문제가 발생할 수 있습니다.

5. 잘 구분되지 않는 클러스터 (Poorly Separated Clusters)

클러스터들이 서로 맞닿거나 겹쳐 있으면, 많은 군집화 접근법이 원래 독립적으로 유지되어야 할 클러스터들을 하나로 합쳐 버리는 문제가 생깁니다. 심지어 뚜렷한 클러스터를 찾아내는 기법조차 경계 지점의 데이터를 어느 한쪽 클러스터에 임의로 배정하게 됩니다.

6. 클러스터 간 관계 (Relationships among Clusters)

대부분의 군집화 기법은 클러스터 간 상대적 위치를 포함한 상호 관계를 명시적으로 고려하지 않습니다. 자기 조직화 지도(Self-Organizing Map, SOM)는 군집화 과정에서 클러스터 간의 관계를 직접 다루는 대표적인 방법입니다. 또한 특정 데이터가 어떤 클러스터에 배정되느냐에 따라 인접 클러스터의 정의 역시 영향을 받습니다.

7. 부분 공간 클러스터 (Subspace Clusters)

클러스터는 전체 차원(속성) 중 일부 부분 집합 안에서만 존재할 수 있습니다. 이때 어떤 차원 집합으로 찾아낸 클러스터는 다른 차원 집합으로 찾은 클러스터와 달라질 수 있습니다.

이 문제는 차원이 두 개만 되어도 발생할 수 있지만, 차원의 수가 늘어날수록 훨씬 심각해집니다. 가능한 차원 부분 집합의 수가 전체 차원 수에 대해 지수적으로 증가하기 때문입니다. 따라서 차원의 수가 상대적으로 낮은 경우가 아니라면, 모든 가능한 차원 부분 집합에서 클러스터를 일일이 탐색하는 것은 현실적으로 불가능합니다.