밀도기반 군집분석 (DBSCAN)

통계
한 줄 정의: 데이터가 촘촘하게 몰려 있는 부분을 하나의 군집으로 묶고, 어디에도 속하지 않는 외딴 점은 이상치로 남겨두는 군집분석 기법입니다.

쉽게 풀면

밤하늘에서 별을 관찰한다고 생각해봅시다. 별들이 촘촘하게 모여 있는 곳은 하나의 "성단"으로 보이고, 주변에 외따로 떨어진 별 하나는 그냥 배경의 잡음처럼 느껴집니다. DBSCAN은 정확히 이런 방식으로 작동합니다. 한 점 주위 일정 반경 안에 이웃 점이 충분히 많으면 "밀집 지역"으로 보고 계속 이어 붙여 하나의 군집을 만들고, 이웃이 거의 없는 외딴 점은 어느 군집에도 넣지 않고 "노이즈(이상치)"로 분류합니다. k-means처럼 처음부터 "몇 개의 그룹으로 나눌지"를 미리 정할 필요가 없고, 동그란 모양이 아닌 구불구불한 형태의 군집도 잘 찾아낸다는 장점이 있습니다.

왜 중요한가

실제 데이터는 미리 몇 개의 그룹으로 나뉘는지 알기 어렵고, 군집의 모양도 원형이 아닌 경우가 많습니다. DBSCAN은 군집 개수를 사전에 지정하지 않고도 임의 형태의 군집을 찾아내며, 동시에 이상치를 자연스럽게 걸러낼 수 있어 이상 탐지, 공간 데이터 분석, 탐색적 데이터 분석(EDA)처럼 "정상 패턴과 예외를 함께 봐야 하는" 연구에서 폭넓게 쓰입니다. 이런 특성 때문에 논문에서는 k-means 등 다른 군집화 기법과 비교 대상으로도 자주 등장합니다.

논문에서는 이렇게 쓰입니다

"공간 밀도 기반의 DBSCAN 알고리즘을 적용하여 이상 거래 패턴을 나머지 정상 거래군과 분리하였다."

이 문장은 "정상 거래는 밀집된 군집으로 묶이고, 패턴이 다른 이상 거래는 어느 군집에도 속하지 않는 점(노이즈)으로 구분되었다"는 뜻입니다. 이상치 탐지가 필요한 연구에서 DBSCAN이 특히 자주 쓰이는 이유입니다.

"차량 궤적 데이터에 DBSCAN을 적용하여 주요 정차 지점을 군집으로 추출하고, 임의 형태의 이동 밀집 구역을 시각화하였다."

도로나 GPS 좌표처럼 정형화되지 않은 공간 데이터에서는 군집이 원형이 아닌 경우가 흔합니다. 이 문장은 DBSCAN이 그런 불규칙한 형태의 밀집 구역(예: 정차가 잦은 골목이나 교차로)을 별도의 모양 가정 없이 찾아냈다는 의미입니다.

"단어 임베딩 공간에서 DBSCAN을 이용해 의미적으로 유사한 문서 군집을 형성하고, 군집에 속하지 않는 문서는 별도 분석 대상으로 남겼다."

텍스트를 벡터로 표현한 뒤 군집화하는 자연어처리 연구에서도 DBSCAN이 활용됩니다. 이 문장은 의미가 비슷한 문서끼리는 군집으로 묶고, 어느 주제 군집에도 속하지 않는 문서는 노이즈로 분리해 후속 분석에서 따로 다루었다는 뜻입니다.

조금 더 깊게 보면

DBSCAN에서 각 점은 크게 세 종류로 나뉩니다. 반경(epsilon) 안에 이웃이 minPts개 이상인 "핵심점(core point)", 핵심점의 이웃이지만 그 자체로는 이웃 수가 부족한 "경계점(border point)", 그리고 어느 군집에도 속하지 않는 "노이즈점"입니다. 논문에서 결과를 평가할 때는 실루엣 계수 같은 내부 평가지표나, 정답 레이블이 있는 경우 ARI(Adjusted Rand Index) 같은 외부 평가지표를 함께 보고하는 경우가 많습니다. 또한 데이터 밀도가 지역마다 크게 다른 경우를 다루기 위해 계층적 밀도 개념을 도입한 HDBSCAN 같은 변형 기법이 후속 연구로 자주 언급됩니다.

주의할 점

DBSCAN은 군집 개수를 미리 정하지 않아도 되지만, 대신 "반경(epsilon)"과 "최소 이웃 수(minPts)"라는 두 매개변수를 직접 정해야 하며 이 값에 따라 결과가 크게 달라질 수 있습니다. 또한 k-평균 군집화와 달리 군집마다 밀도가 크게 다른 데이터에는 잘 맞지 않을 수 있습니다.

관련 용어