CommencezCommencez gratuitement

Retour sur la contamination

Vous constatez que le SVM à une classe ne possède pas de paramètre contamination. Mais vous savez maintenant que vous devez absolument pouvoir contrôler la proportion d'exemples étiquetés comme nouveautés pour 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 avez aussi les données X_train, X_test, y_train, y_test, numpy sous np, ainsi que confusion_matrix().

Cette activité fait partie du cours

Concevoir des flux de travail Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Ajustez 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 ce code d’exemple.

# 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