본문 바로가기
Archive/데이터 분석 관련

[Data] Support Vector Machine 이해하기

by 다람이도토리 2022. 1. 24.

* 기본기를 다지기 위해, 무심코 넘어갔던가, 이해도가 부족한 부분을 정확하게 다시 공부하고 실습하려고 한다.

Support Vector Machine이란?

분류 문제에서 사용 가능한 모델이다. 퍼셉트론 알고리즘은 오차를 최소화하는 결정경계를 찾느다면, 이를 조금 더 확장한 개념인 SVM은 " Support vector"를 활용한다.

사진출처 : wikipedia(SVM)

Support Vector Machine의 목표

Support vector Machine은 주어진 데이터가 어떤 클래스에 속하는지 분류하는 이진 분류 문제에 활용된다.
이 때, 데이터가 "선형적"으로 잘 분류될 수 있다면, 이 데이터를 가장 잘 분리하는 초평면을 찾는 것을 문제라고 한다. 

어떤 평면을 찾게 되는가?

그러면 어떤 평면인지를 답해야하는데, 이는 "마진(margin)"의 최대화에 중점을 둔다.

Margin이란?
각 class별로, 결정 경계와 가장 가까운 data가 있을 것이다. 이들의 data와 결정 경계와의 거리를 margin이라고 한다. 

여기서, 결정 경계와 가장 가까운 포인트를 Support Vector이라고 한다.

Remark. Margin 유도.

 

즉, SVM은 이 margin을 최대화하는 것을 목표로 한다.

 

SVM vs Logistic Regression 장단점 비교

svm 장점 : 
  - 예측의 정확도가 높다.
  - 학습 데이터가 적어도, svm은 적용할 수 있다.
  - 과적합을 피할 수 있다.
  - 데이터 특성이 많지 않아도 성능이 좋게 나오며, 잡음에 큰 영향을 받지 않는다.

svm 단점 : 
  - (비선형의 경우), kernel 함수를 고르기 어렵다.
  - 고차원으로 갈수록 연산량의 부담이 커진다.

Remarks 1 ] 그런데, 선형 문제가 아닐때는 어떻게 풀어야 하는가?

kernel 기법을 활용한다. kernel 기법은 저차원 데이터에 차원을 부여하여, 저차원에서 평면으로 분류할 수 없는 상황을 고차원으로 매핑시켜 잘 분류할 수 있게 만들어준다.

Remarks 2 ] SVM을 회귀 문제로 응용할 수 없을까?

가능하다! 분류의 문제는 그룹이 최대로 떨이질 수 있는 최대거리(최대 마진)을 찾는다. 회귀는 이를 반대로 적용하는 느낌을 가지면 된다. 다시 말해, 마진 내부에 최대한 많은 데이터가 들어갈 수 있도록 하면 된다.!