ComenzarEmpieza gratis

Revisiting contamination

Te das cuenta de que el SVM de una clase no tiene el parámetro contamination. Pero a estas alturas sabes que necesitas controlar la proporción de ejemplos que se etiquetan como novedades para mantener a raya la tasa de falsos positivos. Así que decides probar a umbralizar las puntuaciones. El detector se ha importado como onesvm; también tienes disponibles los datos como X_train, X_test, y_train, y_test, numpy como np, y confusion_matrix().

Este ejercicio forma parte del curso

Diseño de flujos de trabajo de Machine Learning en Python

Ver curso

Instrucciones del ejercicio

  • Ajusta el 1-class SVM y puntúa los datos de prueba.
  • Calcula la proporción observada de valores atípicos en los datos de prueba.
  • Usa np.quantile() para encontrar el umbral de las puntuaciones que logre esa proporción.
  • Usa ese umbral para etiquetar los datos de prueba. Imprime la matriz de confusión.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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, ____ > ____))
Editar y ejecutar código