LoslegenKostenlos loslegen

Ausreißer erkennen

In den nächsten Übungen wirst du den K-Means-Algorithmus zur Betrugserkennung einsetzen und diese Vorhersagen mit den tatsächlich gespeicherten Labels vergleichen, um unsere Ergebnisse zu plausibilisieren.

Betrugsfälle werden typischerweise als diejenigen Beobachtungen markiert, die am weitesten vom Cluster-Zentrum entfernt sind. Du lernst hier, wie das geht und wie du den Cut-off bestimmst. In der nächsten Übung prüfst du dann die Ergebnisse.

Bereitgestellt sind die skalierten Beobachtungen X_scaled sowie die Labels in der Variablen y.

Diese Übung ist Teil des Kurses

Betrugserkennung mit Python

Kurs anzeigen

Anleitung zur Übung

  • Splitte die skalierten Daten und die Labels y in Trainings- und Testdaten.
  • Definiere das MiniBatch-K-Means-Modell mit 3 Clustern und fitte es auf die Trainingsdaten.
  • Hole die Cluster-Vorhersagen für deine Testdaten und ermittele die Cluster-Zentroiden.
  • Lege die Grenze zwischen Betrug und Nicht-Betrug bei 95 % der Distanzverteilung und höher fest.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen