Mulai sekarangMulai 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 merupakan bagian dari kursus

Deteksi Kecurangan di Python

Lihat Kursus

Instruksi 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 langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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