Zacznij terazZacznij za darmo

Wykrywanie wartości odstających

W kolejnych ćwiczeniach użyjesz algorytmu K-means do wykrywania oszustw i porównasz uzyskane prognozy z rzeczywistymi etykietami, aby zweryfikować wyniki.

Fraudulentne transakcje są zazwyczaj identyfikowane jako obserwacje najdalej oddalone od centroidu klastra. W tym ćwiczeniu nauczysz się, jak to zrobić i jak wyznaczyć próg odcięcia. W następnym ćwiczeniu sprawdzisz uzyskane wyniki.

Do dyspozycji masz przeskalowane obserwacje X_scaled oraz etykiety zapisane w zmiennej y.

To ćwiczenie jest częścią kursu

Wykrywanie oszustw w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Podziel przeskalowane dane i etykiety y na zbiór treningowy i testowy.
  • Zdefiniuj model MiniBatch K-means z 3 klastrami i dopasuj go do danych treningowych.
  • Uzyskaj prognozy klastrów dla danych testowych i wyznacz centroidy klastrów.
  • Ustaw granicę między oszustwem a transakcją uczciwą na poziomie 95. percentyla rozkładu odległości i powyżej.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
Edytuj i uruchom kod