Aan de slagGa gratis aan de slag

Uitschieters detecteren

In de volgende oefeningen ga je de K-means-algoritme gebruiken om fraude te voorspellen, en die voorspellingen vergelijken met de echte labels die zijn opgeslagen, om onze resultaten te controleren.

Frauduleuze transacties worden meestal aangemerkt als de observaties die het verst van het clustercentrum liggen. Je leert hoe je dit doet en hoe je de afkapwaarde bepaalt in deze oefening. In de volgende oefening controleer je de resultaten.

Beschikbaar zijn de geschaalde observaties X_scaled, evenals de labels die zijn opgeslagen in de variabele y.

Deze oefening maakt deel uit van de cursus

Fraudedetectie in Python

Cursus bekijken

Oefeninstructies

  • Split de geschaalde data en labels y in een train- en testset.
  • Definieer het MiniBatch K-means-model met 3 clusters en fit dit op de trainingsdata.
  • Haal de clusterpredictions op uit je testdata en verkrijg de clustercentroïden.
  • Definieer de grens tussen fraude en niet-fraude op 95% van de afstandsverdeling en hoger.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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
Code bewerken en uitvoeren