DBSCAN
Trong bài tập này, bạn sẽ thử dùng phương pháp clustering dựa trên mật độ (DBSCAN) để phát hiện gian lận. Ưu điểm của DBSCAN là bạn không cần xác định trước số cụm. Ngoài ra, DBSCAN xử lý dữ liệu có hình dạng “kỳ lạ” (phi lồi) tốt hơn nhiều so với K-means. Lần này, thay vì lấy các điểm ngoại lai của cụm để coi là gian lận, bạn sẽ lấy những cụm nhỏ nhất trong dữ liệu và gán nhãn chúng là gian lận. Bạn vẫn có sẵn tập dữ liệu đã được scale, tức là X_scaled. Hãy thử nhé!
Bài tập này là một phần của khóa học
Phát hiện gian lận với Python
Hướng dẫn bài tập
- Import
DBSCAN. - Khởi tạo một mô hình DBSCAN, đặt khoảng cách tối đa giữa hai điểm là 0.9 và số quan sát tối thiểu trong cụm là 10, rồi fit mô hình với dữ liệu đã được scale.
- Lấy các nhãn dự đoán, đây là số cụm được gán cho từng quan sát.
- In số lượng cụm và các chỉ số đánh giá hiệu năng còn lại.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))