본문 바로가기

Study/Hands-On Machine Learning

[Book] 5. 서포트 벡터 머신

Book Title : Hands-On Machine Learning with Scikit-Learn, Keras & TF

지은이 : 오렐리아 제롱

옮긴이 : 박해선

출판사 : 한빛미디어

코드 출처

https://github.com/rickiepark/handson-ml2

 

GitHub - rickiepark/handson-ml2: 핸즈온 머신러닝 2/E의 주피터 노트북

핸즈온 머신러닝 2/E의 주피터 노트북. Contribute to rickiepark/handson-ml2 development by creating an account on GitHub.

github.com

5. 서포트 벡터 머신

책에서는 서포트 벡터 머신에 사용되는 수식과 수학적 접근이 나오지만, 포스팅에서는 서포트 벡터 머신에 대한 이론만 간단하게 포스팅합니다.
  • 매우 강력하고 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델
  • 클래스 사이에 가장 폭이 넓은 도로를 찾는 것으로 생각하면 됨, 이것을 라지 마진 분류(large margin classification)라고도 함

  • 위 그림에서 가장 큰 도로 바깥쪽에 훈렴 샘플을 추가해도 결정 경계에 전혀 영향이 없음
  • 그래서 특성의 스케일에 민감

하드 마진 분류

  • 모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있는 것을 뜻함
하드 마진 분류 두가지 문제점
  • 이상치에 민감
이상치가 있을 경우 최적의 결정 경계를 잘못 구분하거나 못 찾을 수 있기 때문임
  • 데이터가 선형적으로 구분될 수 있어야 함
올바르게 분류되어있다는 것은 이상치를 잘 분류했다는 것인데, 극도의 이상치인 경우 과적합이 발생할 수 있음, 즉, 이상치를 분류하기 위해 비선형적으로 분리하다가 과적합이 올 수 있음
(SVM은 비선형 분류에도 사용됨, 비선형적으로 분리한다고 과적합이 오는 게 아님, 비선형 분류하기 위해서는 다르게 사용)

소프트 마진 분류

  • 하드 마진 오류에서 발생하는 문제를 해결하기 위한 좀 더 유연한 모델
  • 도로의 폭을 가능한 넓게 유지하는 것과 마진 오류(이상치, 즉 도로 중간이나 반대편에 있는 경우) 사이에 적절한 균형을 잡는 것

Q. SVM 사용할 때 입력값의 스케일이 왜 중요한가

훈련 세트의 스케일이 맞지 않으면 크기가 작은 특성을 무시하는 경향이 있기 때문