본문 바로가기
Data_Analysis/MachineLearning

[Machine Learning] SVM(Support Vector Machine)

by Classic! 2020. 12. 28.

1. SVM(Support Vector Machine)이란?

- 서로 다른 데이터를 분류하는 기준 선(결정 경계)을 정의하는 모델로, 새로운 점이 나타났을 때 결정 경계를 기준으로 어느 쪽에 속하는지 분류하는 과제를 수행한다.

- 속성이 3개인 3차원에서 결정 경계는 선이 아닌 면이 된다. 차원이 늘어나면 결정 경계도 고차원의 초평면이 된다.

 

두 데이터를 직선으로 분리하는 선형 SVM

[이미지 출처] 위키백과

- 서포트 벡터 : 결정 경계와 가장 가까운 데이터.

- 결정 경계는 각 데이터 中 결정 경계와 가장 가까운 거리까지 마진을 설정한다. 이때, 마진을 최대화하는 결정 경계가 가장 우수하다고 할 수 있다. 다시 말해, 결정 경계는 데이터군으로부터 멀리 떨어질수록 좋다.

- 대부분의 지도 학습은 모든 데이터를 이용하여 학습하지만 SVM은 데이터 포인트 중 서포트 벡터만 잡아내면 다른 데이터를 활용하지 않으므로 속도가 빠르다는 장점이 있다.

 

 

 

2. 마진 설정

코드에서는 하이퍼파라미터 C(=Cost)로 이상치를 얼만큼 허용하여 마진을 설정할지 조정한다.

1) 하드 마진

- 결정경계와 가장 가까운 서포트 벡터를 기준으로 마진을 설정하는 방법이다.

- 이상치를 허용하지 않고 타이트하게 마진을 설정하여 오버피팅이 발생할 수도 있다.

 

2) 소프트 마진

- 결정경계와 가장 가까운 데이터 포인트보다 군집에 더 가깝게 마진을 설정하는 방법이다.

- 이상치를 어느 정도 허용하고 다소 루즈하게 마진을 설정하여 언더피팅이 발생할 수도 있다.

 

 

 

2. 선형 SVM 수식

 

★ 듀얼 형식

: w가 아니라 a를 구하는 문제로 바뀌고, 수치적으로 제한이 이차 프로그래밍 문제가 되어 보다 효율적인 풀이가 가능하다.

댓글