IniziaInizia gratis

Rilevare gli outlier

Nei prossimi esercizi userai l'algoritmo K-means per prevedere le frodi e confronterai queste previsioni con le etichette reali salvate, per fare un controllo di buon senso sui risultati.

Le transazioni fraudolente in genere vengono contrassegnate come le osservazioni più lontane dal centroide del cluster. In questo esercizio vedrai come farlo e come determinare la soglia. Nel successivo, verificherai i risultati.

Sono disponibili le osservazioni scalate X_scaled e le etichette memorizzate nella variabile y.

Questo esercizio fa parte del corso

Rilevamento delle frodi in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Suddividi i dati scalati e le etichette y in un insieme di train e uno di test.
  • Definisci il modello MiniBatch K-means con 3 cluster e addestralo sui dati di training.
  • Ottieni le predizioni dei cluster dai dati di test e ricava i centroidi dei cluster.
  • Definisci il confine tra frode e non frode al 95% della distribuzione delle distanze e oltre.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
Modifica ed esegui il codice