알고리즘
BIRCH 알고리즘은 입력값으로 N개의 데이터 포인트 집합(실수 벡터로 표현됨)과 원하는 군집의 수 K를 받는다. 이 알고리즘은 네 가지 단계로 작동하며, 두 번째 단계는 선택 사항이다.
첫 번째 단계에서는 데이터 포인트로부터 군집 특징(
) 트리를 구축하는데, 이는 다음과 같이 정의되는 높이 균형 트리 자료 구조이다.
- N개의 d차원 데이터 포인트 집합이 주어졌을 때, 해당 집합의 군집 특징
는 세 쌍
로 정의된다. 여기서
는 선형 합이다.
는 데이터 포인트의 제곱 합이다.
- 군집 특징은 분기 계수
와 임계값
라는 두 개의 매개변수를 가진 높이 균형 트리인 CF 트리에 구성된다. 각 비단말 노드는 최대
개의
형태의 엔트리를 포함하며, 여기서
는
번째 자식 노드에 대한 포인터이고
는 연관된 하위 군집을 나타내는 군집 특징이다. 단말 노드는 각각
형태의 최대
개 엔트리를 포함한다. 또한 모든 단말 노드를 연결하는 이전 및 다음 포인터도 있다. 트리의 크기는 매개변수
에 따라 달라진다. 노드는 크기
인 페이지에 맞아야 한다.
와
은
에 의해 결정된다. 따라서
를 조정하여 성능 튜닝을 할 수 있다. 단말 노드의 각 엔트리가 단일 데이터 포인트가 아니라 하위 군집이기 때문에 매우 압축된 데이터 집합 표현이 가능하다.
두 번째 단계에서 알고리즘은 초기
트리의 모든 단말 노드 엔트리를 스캔하여 더 작은
트리를 재구성하며, 이 과정에서 이상치를 제거하고 밀집된 하위 군집들을 더 큰 군집으로 묶는다. 이 단계는 BIRCH의 원래 제안에서 선택 사항으로 표시되어 있다.
세 번째 단계에서는 기존의 군집화 알고리즘을 사용하여 모든 단말 노드 엔트리를 군집화한다. 여기서는 응집형 계층적 군집화 알고리즘을
벡터로 표현된 하위 군집들에 직접 적용한다. 또한 사용자가 원하는 군집 수나 군집에 대한 원하는 지름 임계값을 지정할 수 있는 유연성을 제공한다. 이 단계를 거치면 데이터의 주요 분포 패턴을 포착하는 군집 집합을 얻을 수 있다. 그러나 사소하고 국소적인 부정확성이 존재할 수 있으며, 이는 선택적인 4단계에서 처리될 수 있다. 4단계에서는 3단계에서 생성된 군집의 중심을 시드로 사용하고 데이터 포인트를 가장 가까운 시드로 재분배하여 새로운 군집 집합을 얻는다. 4단계에서는 이상치를 버리는 옵션도 제공한다. 즉, 가장 가까운 시드에서 너무 멀리 떨어진 포인트는 이상치로 취급할 수 있다.
군집 특징을 이용한 계산
군집 특징
만 주어지면, 실제 기반 값을 알지 못해도 동일한 척도를 계산할 수 있다.
- 중심(Centroid):

- 반지름(Radius):

- 군집
과
사이의 평균 연계 거리(Average Linkage Distance):
다차원 사례에서는 제곱근을 적절한 노름(norm)으로 대체해야 한다.
BIRCH는 거리 D0에서 D3까지를 사용하여 가장 가까운 단말 노드를 찾고, 반지름 R 또는 지름 D를 사용하여 데이터를 기존 단말 노드에 흡수할지 아니면 새 단말 노드를 추가할지 결정한다.
BIRCH 군집 특징의 수치적 문제
안타깝게도 BIRCH에서
항을 사용하는 것과 관련된 수치적 문제가 있다.
을 계산하거나
와 같은 다른 거리 계산에서 유사한 식을 뺄 때, 심각한 취소가 발생하여 정밀도가 떨어질 수 있으며, 경우에 따라 결과가 음수가 되어 제곱근이 정의되지 않는 문제가 발생할 수 있다. 이는 대신 BETULA 군집 특징
을 사용하여 해결할 수 있는데, 이는 개수
, 평균
, 그리고 분산 계산을 위한 더 신뢰할 수 있는 온라인 알고리즘에 기반한 제곱 편차의 합을 저장한다. 이러한 특징에 대해서도 유사한 가법 정리(additivity theorem)가 성립한다. 제곱 편차에 대해 벡터나 행렬을 저장할 때, 결과적으로 생성되는 BIRCH CF-트리는 K-평균 알고리즘 및 계층적 군집화 외에도 기댓값 최대화 알고리즘을 사용한 가우시안 혼합 모델링을 가속하는 데 사용될 수 있다.
선형 합과 제곱 합을 저장하는 대신, 각 군집 특징
에 평균 및 평균으로부터의 제곱 편차를 저장할 수 있다. 여기서
은 노드 가중치(포인트 수)이다.
는 노드 중심 벡터(산술 평균, 중심)이다.
는 평균으로부터의 제곱 편차의 합(응용 프로그램에 따라 벡터 또는 메모리 절약을 위한 합)이다.
여기서 주요 차이점은
가 원점이 아닌 중심을 기준으로 계산된다는 것이다.
단일 포인트
는 군집 특징
으로 변환될 수 있다. 두 군집 특징
를 결합하기 위해 다음을 사용한다.

(평균의 점진적 업데이트)
(아다마르 곱을 사용한 벡터 형태)
(제곱 편차의 스칼라 합 업데이트)
이 계산들은 유사한 제곱값들의 뺄셈을 피하는 수치적으로 더 신뢰할 수 있는 계산(분산의 온라인 계산 참조)을 사용한다. 중심은 단순히 노드 중심 벡터
이며, 유클리드 거리나 맨해튼 거리 등을 사용한 거리 계산에 직접 사용할 수 있다. 반지름은
로, 지름은
로 간소화된다.
이제 BIRCH 알고리즘에서 사용되는 D0에서 D4까지의 다양한 거리를 다음과 같이 계산할 수 있다.
- 유클리드 거리
와 맨해튼 거리
은 CF 중심
를 사용하여 계산된다.
- 군집 간 거리

- 군집 내 거리

- 분산 증가 거리

이 거리들은 선택한 연계(linkage)에 따라 계층적 군집화를 위한 거리 행렬을 초기화하는 데에도 사용할 수 있다. 정확한 계층적 군집화 및 K-평균 알고리즘을 위해서는 노드 가중치
도 사용해야 한다.