ÎncepețiÎncepe gratuit

Contaminarea, revizitată

Observi că SVM-ul cu o singură clasă nu are un parametru contamination. Știi însă deja că ai nevoie de o modalitate de a controla proporția exemplelor etichetate drept noutăți, pentru a gestiona rata de fals pozitiv. Prin urmare, decizi să experimentezi cu praguri aplicate scorurilor. Detectorul a fost importat ca onesvm; ai disponibile și datele X_train, X_test, y_train, y_test, numpy ca np, și funcția confusion_matrix().

Acest exercițiu face parte din cursul

Proiectarea fluxurilor de lucru pentru Machine Learning în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Antrenează SVM-ul cu o singură clasă și calculează scorurile pentru datele de testare.
  • Calculează proporția observată a valorilor aberante în datele de testare.
  • Folosește np.quantile() pentru a determina pragul la care să aplici scorurile, astfel încât să obții acea proporție.
  • Folosește pragul respectiv pentru a eticheta datele de testare. Afișează matricea de confuzie.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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, ____ > ____))
Editează și rulează codul