시작하기무료로 시작하기

DBSCAN

이 연습 문제에서는 사기 탐지를 위해 밀도 기반 클러스터링 방법(DBSCAN)을 사용해 보겠습니다. DBSCAN의 장점은 사전에 클러스터 개수를 지정할 필요가 없다는 점입니다. 또한 DBSCAN은 K-means보다 비볼록 등 복잡한 모양의 데이터를 더 잘 처리합니다. 이번에는 클러스터의 이상치가 아니라, 데이터에서 가장 작은 클러스터를 사기로 간주해 라벨링해 볼 겁니다. 표준화된 데이터셋인 X_scaled가 준비되어 있습니다. 직접 시도해 보세요!

이 연습은 강의의 일부입니다

Python으로 배우는 사기 탐지

강의 보기

연습 안내

  • DBSCAN을 임포트하세요.
  • 두 샘플 사이의 최대 거리를 0.9로, 클러스터의 최소 관측치 수를 10으로 설정하여 DBSCAN 모델을 초기화하고, 표준화된 데이터에 적합시키세요.
  • 예측된 레이블(각 관측치에 할당된 클러스터 번호)을 얻으세요.
  • 클러스터 수와 나머지 성능 지표를 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import DBSCAN
from sklearn.cluster import ____

# Initialize and fit the DBSCAN model
db = DBSCAN(eps=____, min_samples=____, n_jobs=-1).fit(____)

# Obtain the predicted labels and calculate number of clusters
pred_labels = ____.____
n_clusters = len(set(pred_labels)) - (1 if -1 in labels else 0)

# Print performance metrics for DBSCAN
print('Estimated number of clusters: %d' % ____)
print("Homogeneity: %0.3f" % homogeneity_score(labels, pred_labels))
print("Silhouette Coefficient: %0.3f" % silhouette_score(X_scaled, pred_labels))
코드 편집 및 실행