CommencezCommencez gratuitement

Détection des valeurs aberrantes

Dans les prochains exercices, vous allez utiliser l'algorithme K-means pour prédire la fraude, puis comparer ces prédictions aux étiquettes réelles enregistrées afin de valider vos résultats.

Les opérations frauduleuses sont généralement signalées comme les observations les plus éloignées du centroïde de leur groupe. Vous verrez comment procéder et comment déterminer le seuil dans cet exercice. Dans le suivant, vous vérifierez les résultats.

Vous avez à disposition les observations normalisées X_scaled, ainsi que les étiquettes stockées dans la variable y.

Cette activité fait partie du cours

Détection de fraude en Python

Voir le cours

Instructions de l’exercice

  • Divisez les données normalisées et les étiquettes y en ensembles d'entraînement et de test.
  • Définissez le modèle MiniBatch K-means avec 3 groupes et entraînez-le sur les données d'entraînement.
  • Obtenez les prédictions de groupes pour vos données de test et récupérez les centroïdes.
  • Fixez la frontière entre fraude et non-fraude au 95 % supérieur de la distribution des distances.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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
Modifier et exécuter le code