[R] SVM 서포트 벡터 머신의 정의와 설명
SVM 에 대해 좀 더 자세한 설명을 원하신다면 해당 포스팅 에서 보실 수 있습니다
서포트 벡터 머신은 2차원에서 머무르는 것이 아닌, 3차원 등 차원을 높여서 데이터를 나누는 과정을 뜻한다
즉 고차원에서 데이터를 분류할 수 있는 일종의 칸막이를 만드는 것이다.
이를 좀 더 정확히 설명하면
SVM
데이터에 있는 특성들을 kernel 함수를 이용하여 입체공간에 데이터를 분류할 수 있는 *판을 만들어 주는 것
*판 = 초평면(Hyperplane)
SVM 의 목표
Maximum margin hyperplane 을 찾는 것, 즉 마진을 최대화하는 초평면을 찾는 것
이제 마진은 뭔지, 맥시멈 마진은 어떻게 찾는지 알아보도록 하자.
다시 한번 용어를 정리해보면
Hyperlane 초평면
- 데이터들을 분류할 수 있는 칸막이
Support vectors 서포트 벡터
- 초평면에서 가장 가까운 데이터들
Margin 마진
- 양쪽 Support vectors와 hyperplane 간의 거리의 합
이해가 잘 가지 않으면, 그림을 보면 직관적으로 알 수 있다.
즉 서포트 벡터들의 거리인 마진의 최대치 (Maximum margin)을 찾는 것이 서포트 벡터 머신의 목표이며
이 마진의 최대치를 보여주는 초평면이 최종 초평면이 되는 것이다.
서포트 벡터 머신의 장단점은 아래와 같다.
장점
1. 분류문제나 예측문제 동시에 쓸 수 있다.
2. 신경망 기법에 비해서 과적합 정도가 덜하다.
3. 예측의 정확도가 높음.
4. 사용하기 쉽다.
단점
1. Kernel과 모델 파라미터를 조절하기 위한 테스트를 여러 번 해봐야 최적화된 모형을 만들 수 있다.
2. 모형 구축 시간이 오래걸린다
3. 결과에 대한 설명력이 떨어진다.