시작하기무료로 시작하기

오염도 다시 살펴보기

one-class SVM에는 contamination 매개변수가 없다는 점을 확인했어요. 하지만 이제는 허위 양성 비율을 제어하려면, 새로움으로 라벨링되는 예시의 비율을 제어할 방법이 꼭 필요하다는 것도 잘 알고 계시죠. 그래서 점수에 임계값을 적용하는 방법을 실험해 보려고 합니다. 탐지기는 onesvm으로 가져와 두었고, 데이터는 X_train, X_test, y_train, y_test로, numpynp로, 그리고 confusion_matrix()도 사용할 수 있어요.

이 연습은 강의의 일부입니다

Python으로 설계하는 Machine Learning 워크플로

강의 보기

연습 안내

  • 1-class 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, ____ > ____))
코드 편집 및 실행