현대 계층적 병합 클러스터링 알고리즘
본 논문은 거리 행렬을 입력으로 하는 계층적 병합 클러스터링을 표준 소프트웨어가 요구하는 “스텝와이즈 덴드로그램” 형태로 출력하는 알고리즘들을 분석한다. 기존 알고리즘의 한계를 극복하는 새로운 범용 알고리즘을 제안하고, Rohlf와 Murtagh가 제시한 두 알고리즘의 정확성을 증명한다. 또한 각 연결 방식(단일, 완전, 평균, 가중, Ward, 중심, 중위)에 대해 이론적 복잡도와 실험적 성능을 비교해 최적 선택을 권고한다.
저자: Daniel M"ullner
이 논문은 현대 통계·머신러닝 소프트웨어가 표준으로 채택하고 있는 계층적 병합 클러스터링(HAClust)의 구현 문제를 체계적으로 다룬다. 먼저, 입력 데이터가 N개의 객체에 대한 쌍별 비대칭 거리(또는 비대칭 비유클리드 거리) 행렬이며, 출력은 “스텝와이즈 덴드로그램(stepwise dendrogram)”이라는 3열 행렬 형태라는 실용적 제약을 명시한다. 이 포맷은 R의 hclust, SciPy의 linkage, MATLAB의 linkage 함수가 모두 따르는 관례이며, 따라서 논문의 결과는 바로 기존 패키지에 적용 가능하다.
SAHN 프레임워크를 기반으로, 논문은 전통적인 “원시 알고리즘(primitive algorithm)”을 그림 1에 제시한다. 이 알고리즘은 매 단계마다 현재 클러스터 집합 S에서 가장 작은 거리 쌍 (a, b)를 찾고, 이를 병합해 새로운 클러스터 n을 만든 뒤, 모든 남은 클러스터와의 거리를 업데이트한다. 거리 업데이트 식은 7가지 전형적인 연결 방식(단일, 완전, 평균, 가중, Ward, 중심, 중위)에 따라 달라지며, 표 2에 정리되어 있다. 원시 알고리즘은 O(N³) 시간 복잡도를 가지며, 특히 중심·중위 방식에서 거리값이 병합 순서에 의존해 역전(inversion)이 발생할 수 있다.
이러한 비효율성을 극복하기 위해 저자는 “범용 알고리즘(Generic Algorithm)”을 제안한다. 핵심 아이디어는 (1) 현재 가장 가까운 클러스터 쌍을 히프(우선순위 큐)로 관리해 O(log N) 시간에 검색하고, (2) 병합 후 거리 업데이트를 “lazy” 방식으로 수행해 불필요한 재계산을 피한다는 것이다. 구체적으로, 각 클러스터는 대표 원소와 크기 정보를 유지하고, 거리 행렬은 상삼각형 형태로 메모리에 저장한다. 병합 시, 새로운 클러스터는 기존 두 클러스터 중 하나의 인덱스를 재사용함으로써 메모리 재배치를 최소화한다. 이 설계는 모든 연결 방식에 동일하게 적용 가능하며, 특히 중심·중위 방식에서 기존 O(N³) 알고리즘을 O(N² log N) 수준으로 낮춘다.
논문은 또한 기존 문헌에 제시된 두 알고리즘의 정확성을 보강한다. 첫 번째는 Rohlf(1973)의 최소 신장 트리(MST) 기반 단일 연결 알고리즘이다. 저자는 MST를 단계별로 재구성하면서 각 병합이 스텝와이즈 덴드로그램의 정의와 일치함을 수학적으로 증명한다. 두 번째는 Murtagh(1985)의 최근접 체인(Nearest‑Neighbor‑Chain) 알고리즘이다. 체인 탐색이 현재 클러스터 집합에서 가장 가까운 쌍을 반드시 찾는다는 점을 귀류법으로 증명하고, 체인 종료 조건이 역전 없이 올바른 병합 순서를 보장함을 보여준다.
복잡도 분석 파트에서는 이론적 최악 상황을 Θ(N²) 메모리, Θ(N² log N) 시간으로 정리한다. 실험 섹션에서는 무작위 거리 행렬(10⁴~10⁵ 객체)과 실제 유전 데이터, 이미지 피처 데이터에 대해 기존 구현(SLINK, FastCluster, SciPy 기본)과 비교한다. 결과는 단일·완전·평균·가중·Ward 방식에서는 기존 FastCluster가 충분히 빠르지만, 중심·중위 방식에서는 새 범용 알고리즘이 평균 3배, 최악 5배까지 속도 향상을 보이며 메모리 사용량도 비슷하거나 약간 감소한다는 점을 보여준다. 또한, 스텝와이즈 덴드로그램에 역전이 발생하는 경우를 정량화하고, 중심·중위 방식에서 역전을 방지하기 위한 거리 업데이트 조건(예: 삼각 부등식 보존)을 제시한다.
마지막으로, 각 연결 방식별 최적 알고리즘을 권고한다.
- 단일, 완전, 평균, 가중, Ward: FastCluster(또는 SciPy 기본 구현) 사용이 가장 실용적이며, 이미 최적화돼 있다.
- 중심, 중위: 새로 제안한 범용 알고리즘이 현재 알려진 모든 구현보다 빠르고, 스텝와이즈 덴드로그램의 정확성을 보장한다.
이러한 권고는 구현 난이도, 메모리 요구량, 그리고 실제 데이터에서 관측된 실행 시간 등을 종합적으로 고려한 결과이며, 논문 부록에 상세한 의사코드와 C++ 구현 예제가 제공된다. 전체적으로, 이 연구는 이론적 증명과 실험적 검증을 결합해 현대 소프트웨어 환경에서 계층적 병합 클러스터링을 최적화하는 실용적인 로드맵을 제시한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기