ПочатиПочніть безкоштовно

Знову про contamination

Ви помічаєте, що one-class SVM не має параметра contamination. Але ви вже знаєте, що вам конче потрібен спосіб керувати часткою прикладів, позначених як нові, щоб контролювати частоту хибних спрацьовувань. Тож ви вирішуєте поекспериментувати з порогуванням оцінок. Детектор імпортовано як onesvm, також у вас є дані X_train, X_test, y_train, y_test, numpy як np і confusion_matrix().

Ця вправа є частиною курсу

Проєктування робочих процесів машинного навчання в Python

Переглянути курс

Інструкції до вправи

  • Навчіть 1‑класовий SVM і отримайте оцінки для тестових даних.
  • Обчисліть спостережувану частку викидів у тестових даних.
  • Використайте np.quantile(), щоб знайти поріг для оцінок, який дає таку частку.
  • Застосуйте цей поріг для маркування тестових даних. Виведіть матрицю неточностей.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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, ____ > ____))
Редагувати та запускати код