MachineLeaning

Support Vector Machine

MathematiciantoDatascientist 2021. 8. 30. 21:59

데이터 분포에 대략적인 추축이 쉽지 않은 경우 사용 (LDA 와 달리 분포에 대한 이해가 필요하지 않다.)

 

Support Vector Machine 의 경우, Optimizing problem 을 해결하기 위하여, Lagrange Multiplier 를 적용한다.

Lagrange Multiplier 는 간단하게 f(X, Y) 에 대하여  Maximizing 하기 위하여 G(X, Y) = C (Constant) 라는 제약을 주는 방법이다.

 

여기서 우리는 Maximizing 해야하는 대상을 확인해야하는데, SVM 은 특정 support vector 에 대한 최대 margin 는 두는 것을 목적으로 하기 때문에 Margin 을 Maximizing 한다.

 

 

이와 같은 과정에서 Margin 을 최대화 하는 것은 parameter beta 를 최소화 하는 과정이라고 여길 수 있다.

 

자세한, Lagrange function 에 대한 내용은 pdf 에 담겨있다.

SVM.pdf
1.24MB

예제로 신용카드 사기 검출에 대한 것을 SVM 을 이용하여 분석하였다.

결과로는 차원을 축소한 후 정확도 97 % 에 이르는 값을 얻을 수 있었는데, Deep Learning 이전에 가장 분류에 최적화된 고성능의 방법인 것을 확인할 수 있었다.

kernel 은 linear 를 사용하였고, class_weigh 를 적용하였다. 간단한 문제이고 성능 또한 간단한 모델로도 좋은 값을 갖을 수 있었기에 Hyperparameter setting 이 필요한 rbf 커널은 사용하지 않았다. Polynomial, Gaussian kernel 등 다른 커널들은 overfitting 에 대한 문제를 고려하여 사용하지 않았지만 좀 더 좋은 성능을 위하여 차후에 검토할 예정

Credit card dataset SVM Classification.ipynb
0.24MB
SVM.ipynb
0.06MB

extra )  이후 검토하는 차원에서 rbf kernel 에 대한 사용을 시도하였는데, linear kernel 에 대한 사용에 accuracy 이하를 맴도는 현상을 보였다.