1. SVM(Support Vector Machine)이란?
- 서로 다른 데이터를 분류하는 기준 선(결정 경계)을 정의하는 모델로, 새로운 점이 나타났을 때 결정 경계를 기준으로 어느 쪽에 속하는지 분류하는 과제를 수행한다.
- 속성이 3개인 3차원에서 결정 경계는 선이 아닌 면이 된다. 차원이 늘어나면 결정 경계도 고차원의 초평면이 된다.
[이미지 출처] 위키백과
- 서포트 벡터 : 결정 경계와 가장 가까운 데이터.
- 결정 경계는 각 데이터 中 결정 경계와 가장 가까운 거리까지 마진을 설정한다. 이때, 마진을 최대화하는 결정 경계가 가장 우수하다고 할 수 있다. 다시 말해, 결정 경계는 데이터군으로부터 멀리 떨어질수록 좋다.
- 대부분의 지도 학습은 모든 데이터를 이용하여 학습하지만 SVM은 데이터 포인트 중 서포트 벡터만 잡아내면 다른 데이터를 활용하지 않으므로 속도가 빠르다는 장점이 있다.
2. 마진 설정
코드에서는 하이퍼파라미터 C(=Cost)로 이상치를 얼만큼 허용하여 마진을 설정할지 조정한다.
1) 하드 마진
- 결정경계와 가장 가까운 서포트 벡터를 기준으로 마진을 설정하는 방법이다.
- 이상치를 허용하지 않고 타이트하게 마진을 설정하여 오버피팅이 발생할 수도 있다.
2) 소프트 마진
- 결정경계와 가장 가까운 데이터 포인트보다 군집에 더 가깝게 마진을 설정하는 방법이다.
- 이상치를 어느 정도 허용하고 다소 루즈하게 마진을 설정하여 언더피팅이 발생할 수도 있다.
2. 선형 SVM 수식
★ 듀얼 형식
: w가 아니라 a를 구하는 문제로 바뀌고, 수치적으로 제한이 이차 프로그래밍 문제가 되어 보다 효율적인 풀이가 가능하다.
'Data_Analysis > MachineLearning' 카테고리의 다른 글
[Machine Learning] Kernel SVM(Support Vector Machine) (0) | 2020.12.28 |
---|---|
[Machine Learning] NLP - 텍스트처리(Tokenize) (0) | 2020.10.31 |
[Machine Learning] Ensemble - Random Forest (0) | 2020.07.24 |
[MachineLearning] Decision Tree(의사결정트리) (1) | 2020.07.23 |
댓글