R을 활용한 데이터 분석

서포터 벡터 머신(SVM) 개념정리

오현삼 2019. 7. 23. 02:58

서포터 벡터 머신

- 다양한 데이터 분포에도 잘 작동하는 분류기법 중 최상의 기법

- 정확도 측면에서 다른 분류기법보다 우수하다.

- 의사결정나무처럼 직관적인 해석이 불가능하다. ( 어떤 이유로 데이터들이 분류되었는지 알수 없다.)

- 결과해석은 의사결정 나무가 좋고, 높은 정확도를 위해서는 SVM 이 좋다.

 

최대마진분류기 > 서포트 벡터 분류기 > 서포트벡터머신

 

최대 마진 분류기

- 각 관찰 값들을 선형 경계로 구별하는 방법

- 직관적으로 이해하고 설명하기 쉽지만, 비선형 데이터에 대해 적용할수 없음

 

초평면(Hyperplane)

 

- 최대마진 분류기가 선형 경계로 사용하는 선

- 데이터가 n 차원 → 초평면은 n-1 차원

 

초평면에 대한 설명

분리초평면(Separating Hyperplane)

- 관측치들을 클래스 라벨에 따라 완벽하게 분리하는 초평면들

- 분리가 가능한 초평면이 하나가 아닌 여러개가 존재하는 경우

- 관측치들을 클래스 라벨에 따라 완벽하게 분리하는 초평면들 ( 여러개가 될수 있음 )

 

분리 초평면의 개념 - 1, 2, 3 은 모두 분리초평면이다.

최대마진분류기(Maximal Margin Classifier)

- 초평면을 사용하여 데이터를 분리할 경우 무한개의 초평면이 존재하게 됨

( 어느 관측치랑도 만나지 않기위해 각도나 위치가 조금씩 변하면서 여러개가 생길수 있음 )

- 분리 초평면을 기반으로 분류기를 구성하기 위해서 무한개의 분리초평면중 사용할 것을 결정해야 함

 

- 최대 마진 초평면( 훈련관측치로 부터 가장 멀리 떨어진 분리초평면 ) 을 선택해야 함

- 마진(margine) : 관측치들에서 초평면 까지의 가장 짧은 거리

- 최적의 마진 초평면

= 분리 초평면으로부터 마진이 가장 큰것

= 훈련관측치들까지의 최소거리가 가장 먼 초평면

( = 해당 초평면이 관측치들을 잘 분류함 )

- 검정 관측치가 이 최대 마진 초평면의 어느쪽에 놓이는지를 기반으로 분류한것 = 최대마진 분류기

 

마진(Margine)

- 마진이 작은 값인 경우 조그만 변화에도 관측값들의 결과값이 달라짐

- 마진이 클수록 관측값들을 완벽하게 분류할 수 있음.

 

서포트 벡터(Support Vector)

- 분리초평면으로 부터 마진의 크기만큼 떨어진 실선에 걸쳐져 있는 관측값을 의미

서포트 벡터, 마진, 분리초평면

최대마진분류기의 한계

- 어떤 데이터의 경우 초평면이 존재하지 않을 수 있고,

- 최대 마진 분류기 또한 존재 하지 않을 수 있음

최대 마진 분류기가 사용되지 못할 경우

서포트 벡터 분류기(SupportVectorClassifier)

- 소프트마진(sofr margine)을 사용하여 약간의 오류를 허용하면서 관찰값을 분류하는 것

- 몇몇 관측치를 잘못 분류하더라도 나머지 관측치들을 더 잘 분류할 수 있는 방법

- 모든 관측치가 초평면 뿐만아니라 마진의 올바른쪽에 있도록 하는 마진을 찾으면서, 일부 관측치가 마진에 올바른 쪽에 있지 않더라도 허용된다.

- 약간의 오류를 허용함으로써 과적함(Overfitting)도 방지할 수 있음

- 과적합(Overfitting) : 모든 데이터를 정확하게 분류하고자 하는 초평면을 사용할 때, 그 초평면이 해당 데이터에서만 높은 정확도를 가져오는 현상

- Cost : 어느 정도의 오류를 허용할 것인가

- Cost 가 클수록 Margin의 폭은 작아지고, Cost가 작을수록 Margin의 폭이 커짐

( Cost 값을 어떻게 설정하는지에 대해서는 데이터를 분석할 필요성이 있음 )

- R 에서는 적절한 Cost 값을 계산하기 위한 함수 tune.svm 함수를 제공한다.

 

소프트벡터분류기
cost 의 값에 따라 margin의 폭이 달라진다.

서포트벡터머신(Support Vector Machine)

- 서포트 벡터 분류기를 확장한것

- 비선형 클래스의 경계를 수용하는 분류방법

- 선형분류기를 비선형 구조로 변경해서 관측값을 분류하는 것

- 오른쪽의 사진은 비선형 구조를 가진 데이터이기 때문에 선형 분류기로 분류가 불가능 하다.

 

→ 선형분류기를 비선형 구조로 변경해서 관측값을 분류해야 함

 

 

 

 

 

 

- 서포트벡터머신 : 커널(Kernels) 을 사용하여 특정한 방식으로 변수공간을 확장한 결과

 

* 다항식 커널

- 커널의 차원을 높이면 다양한 결정 결계가 만들어 진다. 

* 방사 커널(Radial Kernel)

다항식 커널을 가진 서포트 벡터 머신
방사커널을 가지는 서포트 벡터

(정리) 서포트 벡터 분류기 + 비선형 커널 = 서포트벡터머신 

 

 

 

범주형(명목형)변수의 처리

- 타켓 변수가 factor 형 데이터 → 분류(Classification)

- 타켓 변수가 연속형 데이터 → 회귀분석

- factor 형태로 처리할 독립변수가 범주형 변수의 순서형 변수일 경우 

→ 각 요인별 관측값을 0,1 형태의 dummy 변수로 만들어 줘야함

 

주요 파라미터 튜닝

- Cost 와 Gamma 파라미터

- Cost

SVM 모델에서 얼만큼 오차를 허용할 것인가

Cost 와 margin은 반비례 관계임

 

- Gamma

커널과 관련있는 수치

가우시안 함수의 표준편차를 조정하는 인자.

Gamma 와 표준편차는 반비례 관계임

 

- R 에서 kernel 인자에 "radial"이 설정될 경우 gamma 값을 조정한다.

- 일반 초평면의 경우에 kernel 인자에 "liner"이 입력됨 

 

- 서포트 벡터 분류기 = 서포터 벡터 머신의 1차 항4

서포트벡터분류기의 cost 값으로 소프트 마진을 결정하는 것

 

- 서포트 벡터 머신 ( 다항식 커널 [직선] )

kernel 인자에 polynomail 을 입력함

degree 로 차수를 지정해줘야 함

degree 가 1초과이면 서포트벡터머신

cost 값을 조절

 

- 서포트 벡터 머신 ( 방사커널 )

kernel에 radial 입력하면 방사형 커널이 됨

gamma 와 cost 값을 조절해줘야함

 

R에서 SVM 수행시 고려사항

- 함수자체에서 변수 scale 을 수행해줌 ( 평균 0, 표준편차 1 ) 별도로 scale 을 할 필요가 없음

( 단 scale 이 필요 없을때 scale 인자에 false 를 입력해야한다. )

- kernel 의 기본값은 radial 이기 때문에 cost 와 gamma 의 값을 동시에 조정해야 한다.

- 선형 초평면을 원할 경우 kernel 인자에 liner을 입력하고, cost 값만 조정해주면된다.

- 다항식 커널을 원할 경우 kernel 인자에 polynomial을 지정하고 degree 인자로 차수를 지정한다.

- 데이터 분포를 plot 으로 나타내보고, 다항식 커널, 방사커널중 무엇을 이용할지 결정한다.

 

참고 포스팅/참고자료 : 

https://m.blog.naver.com/PostView.nhn?blogId=tjdudwo93&logNo=221051481147&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

SVM(Suppot Vector Machine)으로 분류(Classification)하기

-서포트 벡터 머신(Support Vector Machine)- ▶서포트 벡터 머신(SVM)이란? 서포트 벡터 머신(SV...

blog.naver.com

https://ko.wikipedia.org/wiki/%EC%84%9C%ED%8F%AC%ED%8A%B8_%EB%B2%A1%ED%84%B0_%EB%A8%B8%EC%8B%A0

 

서포트 벡터 머신 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 선형 SVM이 두 자료(흰색 원, 검은색 원)을 직선으로 분리하고 있다. 서포트 벡터 머신(support vector machine, SVM[1].[2])은 기계 학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습 모델이며, 주로 분류와 회귀 분석을 위해 사용한다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 하여 새로운 데이터가 어느 카테고

ko.wikipedia.org

https://quiet-time.tistory.com/46

 

R 7장 신경망과 서포트 벡터 머신(발표자료)

▣ R 를 활용한 기계학습 7장. 블랙박스 기법 : 신경망과 서포트 벡터 머신 中 신경망 (p286) ■ 서포트 벡터 머신이란(Support Vector Machine: SVM)? 서포트 벡터 머신이란 간단히 말해 이진 분류기이다. SVM의..

quiet-time.tistory.com