CommencerCommencer gratuitement

Contamination : retour

Vous remarquez que le SVM à une classe n’a pas de paramètre contamination. Mais vous savez désormais qu’il vous faut un moyen de contrôler la proportion d’exemples étiquetés comme nouveautés afin de maîtriser votre taux de faux positifs. Vous décidez donc d’expérimenter un seuillage des scores. Le détecteur a été importé sous le nom onesvm. Vous disposez également des données X_train, X_test, y_train, y_test, de numpy sous np, et de confusion_matrix().

Cet exercice fait partie du cours

Concevoir des workflows de Machine Learning en Python

Afficher le cours

Instructions

  • Entraînez le SVM à une classe et calculez les scores sur les données de test.
  • Calculez la proportion observée de valeurs aberrantes dans les données de test.
  • Utilisez np.quantile() pour trouver le seuil sur les scores permettant d’atteindre cette proportion.
  • Utilisez ce seuil pour étiqueter les données de test. Affichez la matrice de confusion.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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