MulaiMulai sekarang secara gratis

Mendeteksi outlier

Pada latihan berikut, Anda akan menggunakan algoritma K-means untuk memprediksi kecurangan (fraud), lalu membandingkan prediksi tersebut dengan label aktual yang disimpan, untuk memeriksa kewajaran hasilnya.

Transaksi curang umumnya ditandai sebagai observasi yang paling jauh dari centroid klaster. Anda akan mempelajari cara melakukannya dan bagaimana menentukan ambang batas (cut-off) pada latihan ini. Pada latihan berikutnya, Anda akan memeriksa hasilnya.

Tersedia observasi yang sudah diskalakan X_scaled, serta label yang tersimpan dalam variabel y.

Latihan ini adalah bagian dari kursus

Deteksi Kecurangan di Python

Lihat Kursus

Petunjuk latihan

  • Bagi data yang sudah diskalakan dan label y menjadi himpunan latih dan uji.
  • Definisikan model MiniBatch K-means dengan 3 klaster, lalu latih pada data latih.
  • Dapatkan prediksi klaster dari data uji Anda dan peroleh centroid klaster.
  • Tetapkan batas antara fraud dan non-fraud pada 95% distribusi jarak ke atas.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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
Edit dan Jalankan Kode