Kom igångKom igång gratis

Identifiera avvikelser

I de kommande övningarna ska du använda K-means-algoritmen för att förutsäga bedrägeri och jämföra dessa förutsägelser med de faktiska etiketter som sparats, för att kontrollera att resultaten stämmer.

Bedrägliga transaktioner identifieras vanligtvis som de observationer som befinner sig längst bort från klustrets centroid. I den här övningen lär du dig hur man gör detta och hur man bestämmer gränsvärdet. I nästa övning kontrollerar du resultaten.

Tillgängliga variabler är de skalade observationerna X_scaled samt etiketterna lagrade i variabeln y.

Den här övningen är en del av kursen

Bedrägeridetektering i Python

Visa kurs

Övningsinstruktioner

  • Dela de skalade data och etiketterna y i ett tränings- och ett testset.
  • Definiera MiniBatch K-means-modellen med 3 kluster och träna den på träningsdata.
  • Hämta klusterförutsägelserna från ditt testdata och ta fram klustercentroiderna.
  • Definiera gränsen mellan bedrägeri och icke-bedrägeri vid 95 % av avståndsdistributionen och högre.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
Redigera och kör kod