НачатьНачать бесплатно

Пересматриваем параметр загрязнённости

Вы замечаете, что одноклассовый метод опорных векторов (SVM) не имеет параметра contamination. Однако вы уже хорошо знаете: чтобы управлять долей примеров, помечаемых как новые объекты, и тем самым контролировать уровень ложноположительных результатов, вам необходим соответствующий инструмент. Поэтому вы решаете поэкспериментировать с пороговой обработкой оценок. Детектор импортирован как onesvm; также доступны данные X_train, X_test, y_train, y_test, библиотека numpy как np и функция confusion_matrix().

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Обучите одноклассовый 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, ____ > ____))
Редактировать и запускать код