본문 바로가기

심화/포인트 클라우드 기반

DBSCAN(밀도 기반 클러스터링)

개요

- 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

 

2.3. Clustering

Clustering of unlabeled data can be performed with the module sklearn.cluster. Each clustering algorithm comes in two variants: a class, that implements the fit method to learn the clusters on trai...

scikit-learn.org

 

 

출처)

https://bcho.tistory.com/1205

 

클러스터링 #3 - DBSCAN (밀도 기반 클러스터링)

DBSCAN (밀도 기반 클러스터링) 조대협(http://bcho.tistory.com) 기본 개념 이번에는 클러스터링 알고리즘중 밀도 방식의 클러스터링을 사용하는 DBSCAN(Density-based spatial clustering of applications with..

bcho.tistory.com

https://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/auto_examples/cluster/plot_dbscan.html

 

Demo of DBSCAN clustering algorithm — scikit-learn 0.11-git documentation

Demo of DBSCAN clustering algorithm Finds core samples of high density and expands clusters from them. Script output: Estimated number of clusters: 3 Homogeneity: 0.942 Completeness: 0.815 V-measure: 0.874 Adjusted Rand Index: 0.900 Adjusted Mutual Informa

ogrisel.github.io

https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html

 

sklearn.cluster.DBSCAN

Examples using sklearn.cluster.DBSCAN: Comparing different clustering algorithms on toy datasets Comparing different clustering algorithms on toy datasets, Demo of DBSCAN clustering algorithm Demo ...

scikit-learn.org

 

반응형

'심화 > 포인트 클라우드 기반' 카테고리의 다른 글

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