일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- top_k
- integrated gradient
- chatGPT
- tensorflow text
- Airflow
- GenericGBQException
- gather_nd
- 공분산
- Retry
- TensorFlow
- login crawling
- grad-cam
- spark udf
- UDF
- API Gateway
- flask
- 유튜브 API
- session 유지
- subdag
- correlation
- BigQuery
- airflow subdag
- 상관관계
- youtube data
- GCP
- requests
- API
- Counterfactual Explanations
- XAI
- hadoop
- Today
- Total
데이터과학 삼학년
HDBSCAN vs DBSCAN 본문
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로 설정할 경우 : 대규모 클러스와 소규모 클러스터를 잘 판단한다
2. HDBSCAN으로 클러스터링 할 경우 : 가변적인 epsilon 거리로 인해 밀집된 기차역 주변에도 많은 수의 마이크로 클러스터를 반환하는 결과를 얻을 수 있다.
- 이때 min_cluster_size를 증가 시키거나 min_samples를 이용하여 밀도가 낮은 영역에서 작은 클러스터를 클러스터링하지 않도록 만드는 방법이 있긴 하다
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
'Machine Learning' 카테고리의 다른 글
Graph (python networkX) Metric 정리 (0) | 2021.07.20 |
---|---|
텐서플로 함수와 그래프(tf.function, autograph) (0) | 2021.07.12 |
배깅과 페이스팅 (Bagging, pasting) (1) | 2021.06.07 |
한개의 모델로 성격이 비슷한 여러개의 모델을 대체해보자 (0) | 2021.03.05 |
Autoencoder 를 이용한 차원 축소 (latent representation) (0) | 2021.03.03 |