본문 바로가기

데이터분석/이론

[머신러닝] SVM(Support Vector Machine) 이론

1. 필요한 개념

1. Decision boundary

2. 라그랑주 승수(Lagrange multiplier)

 

2. SVM(Support Vector Machine)

1. 정의

-decision rule

-cost function

-support vector

2. 특징

3. 차원의 저주

 

3. SVM(Support Vector Machine) 종류

1. SVM(Support Vector Classifier)

2. SVR(Support Vector Regression)

3. One-Class SVM

 


1. 필요한 개념

 

1. Decision boundary

-p차원에서 부등호를 사용하면 영역으로 나눌 수 있음

-x값이 decision boundary를 넘어감에 따라 Y의 예측값을 지정

-SVM뿐 아니라 다른 알고리즘에서도 사용

-decision boundary 식:

-a^T(a_1, a_2, ...)와 a_0에 따라 예측값이 바뀜, 이 값을 설정하는 과정이 머신러닝중 learning에 해당

-decision rule

   - h(x) > 0이면 식의 위쪽 영역

   - h(x) < 0이면 식의 아래쪽 영역

 

 

2. 라그랑주 승수(Lagrange multiplier)

-최적화 문제(최소화or최대화 하는 값을 찾는 문제)를 풀 때, 목적함수( f(x,y) )를 최대화or최소화 하는 동시에 한정된 다른 조건( g(x,y)=c 등)을 주는 것

-f(x,y)와 제한식( g(x,y)=c )이 접할 때 f(x,y)가 극대값or극소값이 나옴

-f와 g의 변화량이 상수배(방향 동일)가 되는 지점

f와 g의 변화량이 상수배
f와 g가 접할 때 방향이 같음

 

 

 

2. SVM(Support Vector Machine)

 

1. 정의

-데이터의 분포 가정이 힘들 때, 데이터를 잘 나누기 위해 margin을 최대화하는 boundary를 찾는 것

-정확히 구분되지 않으면 적당한 error를 허용하되 최소화하도록 boundary 결정

-초평면(hyper plane)을 아래 식으로 정의하고 beta, beta_0를 유일하게 만들기 위해 ||beta||=1로 제한

-decision rule: f(x)의 부호에 따라 Y의 부호 결정

-margin을 최대로 만드는 계수값 beta, beta0를 구하는 문제(xi: error, error의 합이 특정값을 넘지 않음)

다른 표현 같은 식

-cost function 식: C(>=0)값이 클수록 error가 작음

-support vector: 정확히 margin의 경계 위에 있는 점(alpha_i가 0이 아닌 점), 이 값들로 초평면(beta)을 구함

 

 

2. 특징

-보통 범주형 변수에 대해서

-model cost(ex. SSE)에 영향을 끼칠 점과 끼치지 않을 점을 margin을 통해 구분

-상대적 장점:

   -데이터의 분포가정이 힘든 경우에도 boundary를 이용하여 사용 가능

   -일반적으로 예측의 정확도 높음

-상대적 단점:

   -C(in cost function)를 결정해야함

   -모형 구축에 시간이 오래 걸림

 

 

3. 차원의 저주

-비선형 구조의 데이터를 적합할 때 커널(kernel)을 사용해야 함

   => degree polynomial이 일정 차원 이상이 되면 추정해야하는 모수의 개수가 많아져 test error가 높아짐(과적합)

 

 

 

3. SVM(Support Vector Machine) 종류

 

1. SVM(Support Vector Classifier)

-종속변수(Y)=범주형 변수인 경우

-margin안에 포함되거나 반대방향으로 분류된 점들(경계 부근)을 반영하여 model cost 계산

 

 

2. SVR(Support Vector Regression)

-종속변수(Y)=연속형 변수인 경우

-초평면, margine은 SVM과 동일하게 정의

-margin을 최대한 늘리면서 영역에 최대한 많은 점을 포함시키고, error(영역 바깥에 있는 점)를 최소화

   => margin 밖에 있는 점들의 error가 최소화되도록

-margin 바깥에 위치한 점들을 반영하여 model cost 계산

 

 

3. One-Class SVM

-종속변수(Y)의 정보가 없는 자료(하나의 class)를 요약(like unsupervised learning)

-자료를 모두 포함하는 원(boundary)을 활용

   -중심 위치=a일때, R^2을 최소화하는 원의 반지름 R 찾기(error 허용)