Phát hiện ngoại lệ
Trong các bài tập tiếp theo, bạn sẽ dùng thuật toán K-means để dự đoán gian lận, rồi so sánh các dự đoán đó với nhãn thực tế đã lưu để kiểm chứng kết quả.
Các giao dịch gian lận thường được đánh dấu là những quan sát cách xa tâm cụm nhất. Bạn sẽ học cách thực hiện điều này và cách xác định ngưỡng cắt trong bài tập này. Ở bài tiếp theo, bạn sẽ kiểm tra kết quả.
Bạn có sẵn các quan sát đã được scale X_scaled, cũng như các nhãn được lưu trong biến y.
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
- Chia dữ liệu đã scale và nhãn
ythành tập train và test. - Khai báo mô hình MiniBatch K-means với 3 cụm và fit trên dữ liệu huấn luyện.
- Lấy dự đoán cụm cho dữ liệu kiểm tra và lấy các centroid của cụm.
- Đặt ranh giới giữa gian lận và không gian lận tại mức từ bách phân vị 95% của phân phối khoảng cách trở lên.
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.
# Split the data into training and test set
X_train, X_test, y_train, y_test = ____(____, ____, test_size=0.3, random_state=0)
# Define K-means model
kmeans = ____(n_clusters=____, random_state=42).fit(____)
# Obtain predictions and calculate distance from cluster centroid
X_test_clusters = ____.____(X_test)
X_test_clusters_centers = ____.____
dist = [np.linalg.norm(x-y) for x, y in zip(X_test, X_test_clusters_centers[X_test_clusters])]
# Create fraud predictions based on outliers on clusters
km_y_pred = np.array(dist)
km_y_pred[dist >= np.percentile(dist, ____)] = 1
km_y_pred[dist < np.percentile(dist, ____)] = 0