서포트 벡터머신(Support Vector Machine, SVM)
: 사용하기 편하면서도 높은 정확도를 보이는 데이터 분류를 위한 지도학습 머신러닝 알고리즘.
① 서포트 벡터를 사용해서 결정 경계를 정의하고, 분류되지 않은 점을 해당 결정 경계와 비교해서 분류.
② SVM의 중요 용어
- 결정 경계(Decision Boundary) : 서로 다른 분류 값을 결정하는 경계
데이터에 2개 속성(feature)만 있다면 결정 경계는 이렇게 간단한 선 형태
속성이 3개로 늘어난다면 이렇게 3차원으로 그려야 한다.
- 이때의 결정 경계는 ‘선’이 아닌 ‘평면’이 된다.
- 우리가 이렇게 시각적으로 인지할 수 있는
범위는 딱 3차원까지다.
- 차원, 즉 속성의 개수가 늘어날수록 당연히
복잡
- 결정 경계도 단순한 평면이 아닌 고차원이
될 텐데 이를 “초평면(hyperplane)” 이라고
부른다
최적의 결정 경계(Decision Boundary)
- 어떤 그래프가 제일 위태로워 보이는가?
• C를 보면 선이 파란색 부류와 너무 가까워서 아슬아슬해 보인다.
- 그렇다면 어떤 결정 경계가 가장 적절해 보이는가?
• 당연히 F다. 두 클래스(분류) 사이에서 거리가 가장 멀기 때문이다.
- 결정 경계는 데이터 군으로부터 최대한 멀리 떨어지는 게 좋다는 걸 알았다.
- 실제로 서포트 벡터 머신(Support Vector Machine)이라는 이름에서 Support Vectors는 결정 경계와 가까이 있는 데이터 포인트들을 의미한다.
- 이 데이터들이 경계를 정의하는 결정적인 역할을 하는 셈이다.
- 서포트 벡터(support vector) : 결정 경계선과 가장 가까이 맞닿은 데이터 포인트(클래스의 점 들).
- 마진(margin) : 서포트 벡터와 결정 경계 사이의 거리.
- 가운데 실선이 하나 그어져있 는데, 이게 바로 ‘결정 경계’
- 그리고 그 실선으로부터 검은 테두리가 있는 빨간점 1개, 파 란점 2개까지 영역을 두고 점 선을 그어놓았다. 이게 바로 ‘마진(margin)’
- 최적의 결정 경계는 마진을 최대화한다.
- 옆 그림에서는 x축과 y축 2개 의 속성을 가진 데이터로 결 정 경계를 그었는데, 총 3개의 데이터 포인트(서포트 벡터)가 필요했다.
즉, n개의 속성을 가진 데이터에는 최소 n+1개 의 서포트 벡터가 존재한다는 걸 알 수 있다.
③ SVM의 목표는 바로 이 마진을 최대로 하는 결정 경계를 찾는 것.
'Anaconda > MachineLearning' 카테고리의 다른 글
[MachineLearning] k-최근접 이웃(k-Nearest Neighbor, kNN) (0) | 2020.11.20 |
---|---|
[MachineLearning] 사이킷런(scikit-learn) - Part2(교차검증) (0) | 2020.11.20 |
[MachineLearning] 사이킷런(scikit-learn), Part1(붓꽃 품종 예측) (0) | 2020.08.29 |
[MachineLearning] 순환신경망: RNN(Recurrent Neural Network) (0) | 2020.08.20 |
[MachineLearning] 학습 관련 기술 (0) | 2020.08.19 |