Practice makes perfect

[MachineLearning] 서포트 벡터머신(Support Vector Machine, SVM) 본문

Anaconda/MachineLearning

[MachineLearning] 서포트 벡터머신(Support Vector Machine, SVM)

kerpect 2020. 11. 20. 23:37

서포트 벡터머신(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의 목표는 바로 이 마진을 최대로 하는 결정 경계를 찾는 것.