DBSCAN
在這個練習中,你將嘗試使用一種以密度為基礎的分群方法(DBSCAN)來偵測詐欺。DBSCAN 的優點是你事前不需要定義叢集數量。此外,DBSCAN 對於形狀奇特(亦即非凸型)的資料,比 K-means 更能處理。這次,你不是把叢集的離群值視為詐欺,而是找出資料中「最小的叢集」,並將那些標記為詐欺。你同樣可以使用已標準化的資料集 X_scaled。來試試看吧!
本練習屬於課程
Fraud Detection in Python
練習說明
- 匯入
DBSCAN。 - 初始化一個 DBSCAN 模型,將兩個樣本之間的最大距離設為 0.9、叢集中的最少觀測數設為 10,並將模型套用在已標準化的資料上。
- 取得預測標籤,也就是指派給每個觀測值的叢集編號。
- 列印叢集數量以及其餘的效能指標。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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))