데이터 마이닝에서 활용되는 클러스터링 기법은 데이터 객체를 그룹화하는 관점에 따라 여러 유형으로 나눌 수 있습니다. 각 유형의 특징과 차이점을 살펴보겠습니다.
계층형(Hierarchical) vs 분할형(Partitional)
클러스터링 유형을 구분하는 첫 번째 기준은 클러스터 집합이 중첩(nested)되어 있는지, 즉 계층 구조를 갖는지 아니면 분할(partitional) 방식인지에 대한 것입니다. 분할형 클러스터링은 데이터 객체 집합을 서로 겹치지 않는 부분집합(클러스터)으로 나누는 방식으로, 모든 데이터 객체는 정확히 하나의 부분집합에만 속하게 됩니다.
반면, 클러스터 안에 하위 클러스터(subcluster)를 둘 수 있도록 허용하려면 계층형 클러스터링이 필요합니다. 계층형 클러스터링은 나무(tree) 구조로 표현되는 중첩된 클러스터들의 집합입니다. 이 구조에서 리프 노드를 제외한 모든 노드(클러스터)는 자식 노드들(하위 클러스터)의 합집합이며, 루트 노드는 전체 객체를 포함하는 최상위 클러스터가 됩니다.
배타적(Exclusive) vs 중첩(Overlapping) vs 퍼지(Fuzzy)
일반적인 클러스터링은 배타적(exclusive) 방식으로, 각 객체를 단 하나의 클러스터에만 할당합니다. 하지만 하나의 데이터 포인트가 두 개 이상의 클러스터에 동시에 속해야 하는 경우도 있으며, 이런 상황에는 비배타적(non-exclusive) 클러스터링이 더 적합합니다.
중첩(overlapping) 또는 비배타적 클러스터링은 하나의 객체가 둘 이상의 그룹(클래스)에 속할 수 있다는 사실을 반영합니다. 예를 들어, 대학 소속의 한 사람이 재학생이면서 동시에 그 대학의 직원일 수 있는 경우가 이에 해당합니다.
퍼지(fuzzy) 클러스터링에서는 모든 객체가 0(전혀 속하지 않음)부터 1(완전히 속함) 사이의 멤버십 가중치(membership weight)를 통해 각 클러스터에 속하게 됩니다. 다시 말해, 클러스터를 퍼지 집합(fuzzy set)으로 취급하는 방식입니다.
완전(Complete) vs 부분(Partial)
완전 클러스터링은 모든 객체를 어떤 클러스터에든 반드시 할당하는 반면, 부분 클러스터링은 그렇지 않습니다. 부분 클러스터링이 필요한 이유는 데이터셋의 일부 객체들이 명확한 그룹에 속하지 않을 수 있기 때문입니다. 때로는 데이터셋의 객체들이 노이즈(noise), 이상치(outlier), 또는 '흥미롭지 않은 배경'에 해당하기도 합니다.
예를 들어, 일부 신문 기사들은 지구 온난화처럼 공통된 주제를 공유하는 반면, 다른 기사들은 더 일반적이거나 독특한 내용을 담고 있을 수 있습니다. 따라서 지난 한 달간의 기사에서 중요한 주제를 발견하려면, 공통 주제로 밀접하게 연결된 문서 클러스터만 찾으면 됩니다.
반면, 경우에 따라서는 모든 객체에 대한 완전한 클러스터링이 필요하기도 합니다. 예를 들어, 클러스터링을 활용해 파일을 정리하고 탐색 기능을 제공하는 애플리케이션은 모든 파일이 탐색 가능하도록 보장해야 하기 때문입니다.