Support Vector Machine (SVM) Start

BioinformaticsAndMe






1. Support Vector Machine (SVM;서포트 벡터 머신)


: 지도학습 모델인 SVM은 'Non-linear problem'을 'Linear problem'으로 바꾸어, 분류와 회귀 분석에 사용됨

: 주요 목적은 두 클래스 사이의 Margin(마진)을 최대화하는 '최적의 분리경계인 Hyperplane(초평면)'을 찾는 것

*(2차원 → Line), (3차원 → Plane), (3차원초과 → Hyperplane)

: 아래의 경우는 두 클래스인 늑대와 토끼를 분리하기 위해, 최적의 분리 경계를 찾고 있는 상황

: Hyperplane을 지지하는(걸쳐있는) 관측치들을 Support Vector라 부름





2. Kernel function (커널함수)


: SVM은 두 클래스를 선형 분리할 수 있도록, 커널함수를 이용해 데이터를 높은 차원 공간으로 변환시킴

: 아래 그림은 데이터를 3차원 공간으로 변환하여, 간단한 평면으로 두 클래스를 분리함

: 다양한 커널함수가 존재함 (RBF가 일반적으로 널리 사용됨)
ㄱ) linear → u'*v
ㄴ) polynomial → (gamma*u'*v + coef0)^degree
ㄷ) radial basis(RBF)  exp(-gamma*|u-v|^2)
ㄹ) sigmoid  tanh(gamma*u'*v + coef0)




3. SVM 알고리즘 과정


1) 마진을 극대화하는 최적의 Hyperplane을 선택

2) 잘못된 분류에 대한 페널티를 더함으로써 SVM 손실 함수를 조정

3) 선형으로 분리되지 않는 데이터인 경우에, 선형으로 쉽게 분류할 수 있는 고차원 공간으로 데이터를 변환 (Kernel Trick)





4. SVM 장점


: 비선형 분리 데이터를 커널트릭을 사용하여 분류 모델링 가능

: 고차원 공간에서 원활하게 작동함 (예측 변수가 많은 경우)

: 텍스트 분류 및 이미지 분류에 효과적임

: Multicollinearity problem(다중공선성 문제)를 회피함




5. SVM 단점


: 대용량 데이터셋 처리에는 많은 시간이 소요

: 확률 추정치를 직접적으로 반환하지 않음

: 선형 커널은 선형의 분리 가능한 데이터인 경우 로지스틱 회귀분석과 거의 유사함







#서포트 벡터 머신 알고리즘 설명 영상





#Reference

1) https://www.listendata.com/2017/01/support-vector-machine-in-r-tutorial.html

2) https://www.edureka.co/blog/support-vector-machine-in-r/#Support%20Vector%20Machine%20Demo

3) https://www.datacamp.com/community/tutorials/support-vector-machines-r

4) https://rischanlab.github.io/SVM.html

5) 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

6) https://lamfo-unb.github.io/2017/07/13/svm-en/

7) https://www.youtube.com/watch?v=1NxnPkZM9bc





Support Vector Machine (SVM) End

BioinformaticsAndMe

+ Recent posts