DBSCAN 클러스터링 이란?
Density-Based Spatial Clustering of Applications with Noise 의 약자인 DBSCAN 클러스터링은 k평균 클러스터링과 같이 데이터의 위치 정보를 이용해서 클러스터링하는 기법입니다. k평균 클러스터링은 평균과의 거리가 얼마나 떨어졌는지를 결정하는 반면에, DBSCAN 클러스터링은 데이터의 밀도를 활용해서 클러스터링을 합니다. 따라서, 원뿔모양의 데이터 분포나 아래와 같이 특이한 데이터 분포에 대해 잘 클러스터링할 수 있습니다.
만일, 행정구역을 나눈다고 했을 때, 지역의 크기 vs 인구 밀도를 기준으로 행정구역을 나눌 수 있습니다. DBSCAN은 인구 밀도를 기준으로 행정구역을 나누는 것에 가까운 클러스터링 기법입니다.
DBSCAN 파라미터 정의
1. 각 데이터 벡터들로부터의 반경 E
2. 클러스터로 인정하기 위한 E 이내의 최소 개수 N
DBSCAN 파라미터를 정의하기 위해서는 주변 공간에 대한 정의와 주변 공간에 몇 개의 데이터가 존재할 때 클러스터로 설정할 것인지에 대한 정의가 필요합니다. DBSCAN 클러스터링은 파라미터들을 사용해서 클러스터링을 하거나 노이즈를 제거하는 알고리즘입니다. 클러스터는 핵심 벡터를 중심으로 생성되며, 핵심 벡터에서 접근은 가능하지만 핵심 벡터가 아닌 외곽 벡터가 존재합니다.
#1. 핵심 벡터는 한 데이터 벡터로 부터 거리 E 내에 위치한 다른 데이터 벡터들의 수가 N보다 클경우 클러스터링을 하는데, 이때 중심이 되는 벡터입니다.
#2. 외곽 벡터는 핵심 벡터로부터 거리 E 내에 위치해서 같은 클러스터로 분류되며 자체로는 핵심 벡터가 아니고 해당 클러스터의 외곽을 형성하는 벡터입니다.
#3. 노이즈 벡터는 핵심 벡터도 아니고 외곽 벡터도 아닌 벡터인데, 거리 E 내에 N개 미만의 벡터가 존재합니다. 노이즈 벡터는 어떠한 클러스터에도 속하지 않는 벡터입니다.
DBSCAN 장점
- 클러스터 개수 정의 불필요
- 데이터들의 밀도를 계산해서 클러스터링
- 비선형 경계 클러스터링 가능
- 노이즈에 강함 (노이즈벡터 따로 분류)
- 클러스터 경계의 애매하게 있는 점이 줄어듦
DBSCAN 단점
- 데이터를 사용하는 순서에 따라 클러스터링 차이
- 고차원 데이터에서 적절한 E를 찾기가 어려움
R DBSCAN 명령어
dbscan()
마무리
오늘은 저에게도 생소한 DBSCAN 클러스터링에 대해서 알아보았습니다. k평균 클러스터링에 비해서 정해야하는 파라미터가 한개 더 증가한 클러스터링 기법입니다. DBSCAN 클러스터링을 사용하기 위해서는 반경E와 최소 데이터 개수N을 설정해줘야하는데 실제로 사용해보지 않아서 감이 잡히지는 않지만 클러스터링 방법에는 이런 것도 있구나하고 넘어가려합니다. k평균 클러스터링은 거리를 기준으로, DBSCAN 클러스터링은 밀도를 기준으로 클러스터링하는 기법입니다.
댓글