Kom igångKom igång gratis

Kontaminering – ett nytt perspektiv

Du märker att en-klass-SVM saknar en contamination-parameter. Men du vet vid det här laget att du verkligen behöver ett sätt att styra andelen exempel som märks som avvikelser, för att hålla koll på din andel falska positiva. Därför väljer du att experimentera med tröskling av scores. Detektorn har importerats som onesvm, och du har även tillgång till data som X_train, X_test, y_train, y_test, numpy som np samt confusion_matrix().

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

Att designa maskininlärningsflöden i Python

Visa kurs

Övningsinstruktioner

  • Träna en-klass-SVM och beräkna scores för testdata.
  • Beräkna den observerade andelen avvikare i testdata.
  • Använd np.quantile() för att hitta rätt tröskel för scores som ger den andelen.
  • Använd tröskeln för att märka testdata. Skriv ut konfusionsmatrisen.

Interaktiv övning med praktiskt arbete

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

# Fit a one-class SVM detector and score the test data
nov_det = ____(X_train)
scores = ____(X_test)

# Find the observed proportion of outliers in the test data
prop = np.____(y_test==____)

# Compute the appropriate threshold
threshold = np.____(____, ____)

# Print the confusion matrix for the thresholded scores
print(confusion_matrix(y_test, ____ > ____))
Redigera och kör kod