데이터과학 삼학년

HDBSCAN vs DBSCAN 본문

Machine Learning

HDBSCAN vs DBSCAN

Dan-k 2021. 7. 8. 19:32
반응형

DBSCAN 과 HDBSCAN 의 차이점은 무엇일까?

 

HDBSCAN

- DBSCAN을 기반으로 실행시키는 클러스터링 방법

- DBSCAN은 하이퍼파라미터로 최소 클러스터 사이즈와 밀도 거리인 threshold epsilon 을 지정해주어야 함

- 그러나,  HDBSCAN은 다양한 epsilon값을 기반으로 실행시키기 때문에 최소 클러스터 사이즈만 사용자가 지정해주면 된다는 장점이 있음(즉, 가변의 밀도를 가진 클러스터를 찾는 방법)

- 그러나, 최소 epsilon을 사용자가 정하는 것이 여전히 이득이 되는 경우들이 존재한다는 것을 명심

While DBSCAN needs a minimum cluster size and a distance threshold epsilon as user-defined input parameters, HDBSCAN* is basically a DBSCAN implementation for varying epsilon values and therefore only needs the minimum cluster size as single input parameter.

 

 

HDBSCAN 한계

- 최소 epsilon을 사용자가 정하는 것의 유효성 설명 - > min_cluster_size 을  이용하여 최소 점을 정할수 있음

- 아래 사진과 같은 통행자의 픽업 및 하차위치를 클러스터하는 데이터가 있다고 할때, 제대로 된 클러스터는

기차역 주변과 픽업을 위한 street근처로 클러스터링되기를 기대한다고 하자.

1. DBSCAN으로 최소 epsilon 거리가 4m로 설정할 경우 : 대규모 클러스와 소규모 클러스터를 잘 판단한다 

DBSCAN을 이용한 클러스터링

2. HDBSCAN으로 클러스터링 할 경우 : 가변적인 epsilon 거리로 인해 밀집된 기차역 주변에도 많은 수의 마이크로 클러스터를 반환하는 결과를 얻을 수 있다.

- 이때 min_cluster_size를 증가 시키거나 min_samples를 이용하여 밀도가 낮은 영역에서 작은 클러스터를 클러스터링하지 않도록 만드는 방법이 있긴 하다

HDBSCAN을 이용한 클러스터링

 

X = np.radians(coordinates) #convert the list of lat/lon coordinates to radians
earth_radius_km = 6371
epsilon = 0.005 / earth_radius #calculate 5 meter epsilon threshold

clusterer = hdbscan.HDBSCAN(min_cluster_size=4, metric='haversine',
cluster_selection_epsilon=epsilon, cluster_selection_method = 'eom')
clusterer.fit(X)

 

 

https://hdbscan.readthedocs.io/en/latest/how_to_use_epsilon.html

728x90
반응형
LIST
Comments