지도 학습과 서포트 벡터 머신

Beginner

This tutorial is from open-source community. Access the source code

소개

이 튜토리얼에서는 분류, 회귀 및 이상치 탐지에 사용되는 지도 학습 방법인 서포트 벡터 머신 (SVM) 에 대해 배웁니다. SVM 은 고차원 공간에서 효과적이며, 차원의 수가 샘플의 수보다 클 때도 잘 작동할 수 있습니다.

SVM 의 장점으로는 고차원 공간에서의 효율성, 메모리 효율성, 다양한 커널 함수의 활용성이 있습니다. 그러나 과적합을 피하고 주어진 문제에 적합한 커널과 정규화 항을 선택하는 것이 중요합니다.

이 튜토리얼에서는 다음 주제를 다룰 것입니다.

  1. SVM 을 이용한 분류
  2. 다중 클래스 분류
  3. 점수 및 확률
  4. 불균형 문제
  5. SVM 을 이용한 회귀
  6. 밀도 추정 및 신선도 탐지

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근할 수 있습니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 88%입니다.학습자들로부터 67%의 긍정적인 리뷰율을 받았습니다.

SVM 을 이용한 분류

  • 필요한 라이브러리를 가져옵니다.
from sklearn import svm
  • 학습 샘플 X와 클래스 레이블 y를 정의합니다.
X = [[0, 0], [1, 1]]
y = [0, 1]
  • SVC 분류기의 인스턴스를 생성하고 데이터를 맞춥니다.
clf = svm.SVC()
clf.fit(X, y)
  • 학습된 모델을 사용하여 새로운 값을 예측합니다.
clf.predict([[2., 2.]])

다중 클래스 분류

  • SVCNuSVC 분류기는 "일대일" 접근 방식을 사용하여 다중 클래스 분류에 사용할 수 있습니다.
X = [[0], [1], [2], [3]]
Y = [0, 1, 2, 3]
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, Y)
dec = clf.decision_function([[1]])

점수 및 확률

  • SVM 은 직접 확률 추정값을 제공하지 않지만, probability 매개변수를 True로 설정하여 확률 추정을 활성화할 수 있습니다.
clf = svm.SVC(probability=True)
clf.fit(X, y)
  • 그런 다음 각 클래스의 확률을 얻으려면 predict_proba 메서드를 사용할 수 있습니다.
clf.predict_proba([[2., 2.]])
  • 확률 추정은 비용이 많이 들고 교차 검증이 필요하므로 신중하게 사용하십시오.

불균형 문제

  • SVM 은 class_weight 매개변수를 조정하여 불균형 문제를 처리할 수 있습니다.
clf = svm.SVC(class_weight={1: 10})
clf.fit(X, y)

SVM 을 이용한 회귀

  • 회귀 문제의 경우, SVM 은 SVR 클래스를 사용하여 수행할 수 있습니다.
X = [[0, 0], [1, 1]]
y = [0.5, 2.5]
regr = svm.SVR()
regr.fit(X, y)
regr.predict([[1, 1]])

밀도 추정 및 신규성 탐지

  • SVM 은 OneClassSVM 클래스를 사용하여 밀도 추정 및 신규성 탐지에도 활용될 수 있습니다.
clf = svm.OneClassSVM()
clf.fit(X)
clf.predict(X)

요약

이 튜토리얼에서는 서포트 벡터 머신 (SVM) 과 분류, 회귀, 밀도 추정, 신규성 탐지 분야의 응용에 대해 배웠습니다. 분류, 다중 분류, 점수 및 확률, 불균형 문제, 회귀 및 밀도 추정 단계를 다루었습니다. SVM 은 머신 러닝에서 강력한 도구이며 다양한 시나리오에서 정확한 예측을 달성하기 위해 사용될 수 있습니다.