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
Anleitung zur Übung
- Splitte die skalierten Daten und die Labels
yin 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