개요
- K Means나 Hierarchical 클러스터링의 경우 군집간의 거리를 이용하여 클러스터링을 하는 방법이다.
- 반면, DBSCAN((Density-based spatial clustering of applications with noise) 밀도 기반의 클러스터링은 점이 세밀하게 몰려 있어서 밀도가 높은 부분을 클러스터링 하는 방식이다.
- DBSCAN은 밀도가 낮은 부분을 아웃라이어로 간주하기도 한다.
- 사용 파라미터: e(epsilon), m(minPts)
군집화 사용 예시)
: 만약 고객에게 제품을 추천해줄 때, 이미 구매한 제품 혹은 검색한 제품에 따라 고객을 군집화 할 수 있고 유사한 군에 속한 고객에게 같은 군에 속한 다른 고객이 구매한 제품을 추천해 줄 수 있다.
특징
- 거리 e 내에 점 m개를 가지고 있는 점p를 Core Point(중심점) 이라고 한다.
- DBSCAN 인자로 e 값과 m을 전달 받는다.
- 각각의 점을 조사하여 반경 e내에 minPts 갯수를 포함하는지 조사하여 Core Point와 Border Point를 구분한다.
- CorePoint 끼리는 하나의 군집으로 묶는다.
- 반경 e 내에 어느 점도 포함시키지 못하는 점은 Noise 즉, Outlier가 된다.
- K Means와 같이 군집화 수(K)를 처음에 정하지 않아도 된다.
※ 다차원 데이터(4차원 이상)도 DBSCAN으로 클러스터링이 가능하다. 다만, 시각화 하기 위해서는 PCA나 t-SNE와 같은 차원 축소 기법이 필요하다.
※ 아래는 iris 데이터를 DBSCAN 알고리즘으로 클러스터링 한 모습. Feature 갯수는 4개이지만 4차원으로 표현할 수가 없어 3차원 특징만으로 시각화를 하였다.
※ 사견)
- BFS 알고리즘 처럼 한 지점을 중심으로 주변 부를 탐색해 나간다.
- 데이터를 정규화 하면 아래와 같이 클러스터링 갯수가 변하기도 한다.
※ 클러스터링 관련 배경 지식
- 거리 기반 클러스터링으로 대표되는 K-Means 클러스터링과 밀도 기반 클러스터링으로 대표되는 DBSCAN 등은 각각의 데이터 분포에 따라 적절히 사용할 필요가 있다.
- 클러스터링 갯수(K)가 고정이냐 유동이냐에 따라 알고리즘 선택도 갈릴 수 있다.
https://scikit-learn.org/stable/modules/clustering.html
출처)
https://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/auto_examples/cluster/plot_dbscan.html
https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
'심화 > 포인트 클라우드 기반' 카테고리의 다른 글
PCL RGB (0) | 2022.11.07 |
---|---|
PCL Window Install (0) | 2022.09.01 |
Semantic-Kitti 데이터셋 설명 (0) | 2022.07.25 |
[1] Open3D 제공 기능 목록 정리(PointCloud) (0) | 2022.07.14 |