Zacznij terazZacznij za darmo

Ponowne spojrzenie na kontaminację

Zauważasz, że jednoklasowa SVM nie ma parametru contamination. Wiesz już jednak, że kontrolowanie odsetka przykładów oznaczanych jako nowości jest niezbędne do zarządzania wskaźnikiem fałszywie pozytywnych wyników. Postanawiasz więc poeksperymentować z progowaniem wyników. Detektor został zaimportowany jako onesvm, a do dyspozycji masz dane X_train, X_test, y_train, y_test, bibliotekę numpy jako np oraz funkcję confusion_matrix().

To ćwiczenie jest częścią kursu

Projektowanie przepływów pracy uczenia maszynowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Dopasuj jednoklasową SVM i oceń dane testowe.
  • Oblicz zaobserwowany odsetek wartości odstających w danych testowych.
  • Użyj np.quantile(), aby wyznaczyć próg dla wyników odpowiadający temu odsetkowi.
  • Zastosuj ten próg do etykietowania danych testowych. Wyświetl macierz pomyłek.

Interaktywne ćwiczenie praktyczne

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

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