SVM(Support Vector Machine) : 서포트 벡터 머신은 클래시피케이션 문제를 푸는데 쓰이는 매우 강력하고 빠른 알고리즘이다.

학계 뿐만이 아니라 산업계에서도 실제 문제를 푸는 데 사용되며 MLP의 느린속도를 보완하며 2006년 이전까지 기계학습의 주류 알고리즘이었다.

매우 수학적으로 잘 정리되고 논리적이어서 전처리가 잘된 피쳐가 있을 경우 아직도 최고수준의 성능을 보장한다.


간단히 원리를 이해하면, 2종류의 데이터들이 맵핑되는 공간에서 두 그룹을 나누는 경계선을 찾는데, 이 경계선은 두 데이터와 직선의 거리가 가장 커지는 maximum margin을 찾도록 되어있다.


그런데 어떤 데이터는 전처리를 아무리 잘하여도 직선으로 나눌 수 없는 분포를 이루기도 하는데, 이를 나누기 위해서는 임의의 공간으로 데이터를 맵핑하여 경계선을 찾아야한다.

이를 커널 메서드라한다.


그런데 커널로 데이터를 보내고 경계선을 찾는 것은 연산이 매우 오래걸리는데, SVM은 커널트릭이라는 방법을 사용하여 실제로 데이터를 커널로 보내진 않지만 보낸것과 동일한 효과를 내어매우 빠른 속도로 경계선을 찾을 수 있다. 


http://blog.secmem.org/583



- SVM 사용시 주의사항

weka에서 libsvm이나 smo를 사용해서 돌린다.

이때 RBF 커널이 가장 좋은 것으로 알려져있다.

그런데 중요한 점은 gamma 스케일이 매우 성능에 큰 영향을 미친다는 것이다.



contest.arff ( 곽하녹 작성 )

이 데이터의경우 gamma값이 1000이하일 때는 성능이 50%이다가, 1만이상부터 학습이 되기 시작했다.

'연구 > Machine Learning' 카테고리의 다른 글

기계학습 오픈 소스 정리  (0) 2015.04.13
MCMC, Sampling 예제  (0) 2015.04.05
Support Vector Machine  (0) 2015.04.03
Markov Random Field, MRF  (1) 2015.03.26
머신러닝의 응용사례  (0) 2015.03.24
Practical Theano Tutorial  (0) 2015.03.11
by 곽동현 이스텔리앙 2015.04.03 12:33