4. 군집화(Clustering) > 4-4. 분할적 군집: 밀도기반
분할적 군집: 밀도기반
분할적 군집의 '밀도기반 군집'은 개체들이 모여 있어 밀도 부분을 하나의 군집으로 분류하는 방법입니다. 중심점(centroid)를 두고 군집을 형성해나가서 원의 형태가 아니면 군집화가 잘 이루어지지 않는 중심기반 군집화의 단점을 보완할 수 있는 방법이기도 합니다. 밀도가 낮은 곳, 즉 다른 개체들과 떨어져 있는 예외적인 개체 같은 경우에는 군집에 포함시키지 않으므로 이상치 탐지(Anomaly detection)에 활용하기 적합한 기법입니다.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 클러스터링은 개체들의 밀도를 계산하여 밀도가 높게 분포되어 있는 개체들끼리 그룹으로 묶는 기법입니다. K-Means 처럼 중심점의 개수를 지정해주진 않아도 되지만, 설정해야 하는 파라미터들이 있는 것이 특징입니다. epsilon
은 점p를 중심(core point)으로 밀조를 계산할 범위인 반지름을 의미하고, minPts
는 그룹을 묶는데 필요한 최소 개체수를 말합니다. 즉, 연구자는 반지름의 길이와 그 반지름을 갖는 원 안에 들어가는 최소한의 개체수를 지정해줘야 한다는 의미입니다.
DBSCAN 클러스터링의 원리는 다음과 같습니다.
이때 p의 군집에는 속하지만 core point는 아닌 점들은 border point이라고 하고 어느 군집에도 속하지 않는 아웃라이어는 noise point라고 합니다.
DBSCAN 클러스터링은 K-Means에서 부각된 여러 단점들을 상쇄할 수 있는 장점들을 가집니다. 우선, 구형이 아니면 제대로 결과가 도출되지 않는 K-Means와 달리 밀도에 따라서 클러스터를 형성하지 때문에 기하하적인 모양을 갖는 군집도 찾아낼 수 있습니다. 또한 다른 개체들과 상대적으로 멀리 떨어져 있는 아웃라이어(이상치, 극단값)들을 노이즈로 구분하여 성능 저하를 막을 수 있습니다.
반면, 여러 한계점도 존재합니다. 우선 DBSCAN은 다른 밀도 분포를 가진 데이터의 군집분석은 잘 수행하지 못합니다. 예를 들어, 서로 다른 군집으로 분류되어야 하는 개체들 간의 분포 사이의 경계 부분에 밀도가 낮지 않다면 이들을 다른 군집으로 구분하지 못할 수 있습니다. 또한 밀도가 낮은 개체들을 하나의 군집으로 묶어야 하는 경우에도 이들을 모두 이상치로 구분하여 제거해버릴 가능성도 있습니다.
✔️ 최적의 epsilon, minPts를 찾는 방법 가장 적합한 eps, minPts를 찾는 공식같은 하나의 방법이 있진 않으며, 값을 조금씩 바꿔가면서 최적을 값을 찾아야 합니다. 클러스터링을 다룬 논문이나 DBSCAN 논문에서 적절한 eps, minPts 값을 권장하는 내용도 있으므로 참고해보아도 좋을 것 같습니다.
minPts은 너무 작으면 노이즈까지 core point 혹은 border point에 속하여 군집을 형성하게 되고, 너무 크면 한 군집의 크기가 커져서 유사한 개체끼리 묶는다는 군집화의 의미가 사라지게 됩니다. eps역시 너무 작으면 어떤 개체로 군집에 속하지 않는 문제가 있고 너무 크면 군집 분류가 되지 않습니다.
최근에는 minPts만 지정해주고 eps값을 알아서 조정하면서 설정하는 방식의 'HDBSCAN'이라는 기법도 등장하였습니다.
참고자료: [논문]DBSCAN 리뷰, 밀도기반 군집분석 DBSCAN의 입력모수 Eps, MinPts 결정 방법, Explain DBSCAN clustering