SVM(Support Vector Machine)
- SVM은 Support Vector와 Hyperplane(초평면) 이용하여 분류를 하는 알고리즘
- SVM: 서포트 벡터 머신, Support Vector Machine
- SVC: Support Vector Classifier, 범주형 변수일 경우
- SVR: Support Vector Regression, 연속형 변수일 경우
- 보통 SVM 자체는 범주형 변수일 때를 일컫습니다.
SVM의 목적은 두 개의 다른 클래스를 가장 잘 분류할 수 있는 결정 경계(Decision Boundary)를 찾는 것입니다.
잘 분류한다는 것(결정 경계의 조건)은 서포트 벡터(Support Vector)로부터 거리가 가장 먼 결정 경계를 찾는 것인데(Margin이 가장 큰 값일 때)
어느 한쪽에 치우치지 않게 하며, 빈 공간이라도 양쪽 군집과 균등한 위치에 있어야 합니다.
결정 경계(Decision Boundary)
- 클래스를 분류하기 위한 경계
- 2차원의 결정 경계는 선, 3차원은 평면, 그 이상은 초평면(Hyperplane)이라고 부릅니다.
- 초평면은 시각적으로 표시할 수 없음
마진(Margin)
- 마진(margin): 결정 경계와 서포트 벡터 사이의 거리
- 서포트 벡터는 결정 경계와 가장 가까이 있는 데이터 Vector들을 의미합니다.
SVM은 데이터들을 올바르게 분리하면서 마진의 크기를 최대화해야 하기 때문에, 이상치(Outlier)들을 잘 다루는게 중요합니다.
여기서 하드 마진(Hard margin)과 소프트 마진(Soft margin)이라는 개념이 나옵니다.
- 하드 마진
- 결정 경계와 서포트 벡터의 거리가 좁은 마진
- 과적합(Overfitting)을 야기할 수 있음
- 소프트 마진:
- 결정 경계와 서포트 벡터의 거리가 넓은 마진
- 과소적합(Underfitting)을 야기할 수 있음
하드마진 VS 소프트마진
데이터 세트가 선형으로 분리 될 때 소프트 마진 SVM이 더 좋아질 것으로 기대합니다. 하드 마진 SVM에서 단일 이상치가 경계를 결정할 수 있기 때문에 분류자가 데이터의 노이즈에 지나치게 민감하게 만들기 때문입니다.
- 하드 마진을 할 경우 빨간색 이상치가 경계를 결정하며 과적합을 일으키는 경우
커널(Kernel)
선형으로 분리할 수 있는 경우와 그렇지 않은 경우가 있는데 지금까지는 선형으로 분리할 수 있는 경우의 예시만 보여드렸습니다.
선형으로 분리할 수 없는 경우에는 비선형 SVM을 써야 하는데 어떻게 구축할 수 있을지가 핵심이고 관측 데이터들을 더 높은 차원의 데이터로 변환시켜서 분류해 보자는 아이디어가 제시되었습니다.
- 커널 기법은 데이터를 더 높은 차원으로 이동시켜 데이터를 분류하는 방법
- 커널 종류: 선형, 다항식, 가우시안, 시그모이드(Sigmoid)
1. 다항식(Polynomial)
(x,y)
처럼 2차원의 좌표를 3차원의 좌표로 변환- 더 높은 차원으로 변형하여 초평면 결정 경계를 얻을 수 있음
2. 가우시안 커널(RBF: Radial Bias Function, Gaussian kernel)
- 성능이 우수하여 가장 많이 쓰이는 기법
- 2차원의 좌표를 무한한 차원의 좌표로 변환
- gamma: SVM 가우시안 커널의 파라미터
- 값이 클수록 유연 -> 오버피팅 위험
- 값이 작을수록 뻣뻣 -> 언더피팅 위험
정리
- SVM은 서포트 벡터(Support Vector)로부터 Margin이 가장 큰 결정 경계(Decision Boundary)를 찾아 두 클래스를 분류하는 알고리즘
- 고차원 데이터의 분류문제의 좋은 성능을 보임
- 범주형 데이터, 수치형 데이터의 분류 문제에 사용 가능
- 예측이 어떻게 결정되었는지 이해하기 어렵고 모델을 분석하기도 어려움
REFERENCE
https://hleecaster.com/ml-svm-concept/
https://techblog-history-younghunjo1.tistory.com/78
김성범 [핵심 머신러닝]SVM모델