서포트 벡터 머신(SVM)
- 분류 방법론
- 선형, 비선형 분류에 모두 사용
- 분리 초평면에서 출발하여 서포트 벡터 머신으로 발전
분리 초평면(Separating Hyperlane)
- 초평면 : p차원 공간에서 p-1 차원의 부분공간
- 초평면에 임의의 관측치를 대입하여 결과의 부호에 따라 두 집단으로 분류(1,-1)
- 분리 초평면은 무수히 많이 존재 가능. 어떤 걸 이용할까? -> 최대 마진 분류기
최대 마진 분류기
- 분리 초평면 중 최대 마진을 갖는 초평면을 선택하는 방법
- 마진(margin) : 주어진 관측치와 초평면 사이의 수직 거리. 관측치들에서 초평면까지의 가장 짧은 거리
- 마진이 최대가 되게 하는 초평면(최대마진초평면)을 찾는다!
H+와 H- 위의 점들에서 초평면까지의 거리를 d라고 할 때(마진)
이 d를 가장 크게 하는 초평면을 찾는다
H+와 H- 위의 점들이 아닌 다른 점들로 부터 초평면까지의 거리는 항상 d 이상이다
하지만 초평면과 가장 가까운 관측치들을 고려해야하기 때문에 H+와 H- 위의 점들을 고려함
d(마진)을 최대화 하는 파라미터 w와 b를 찾는 게 목적
서포트 벡터
- H+, H- 위의 점들
- 최대 마진 초평면 결정에 영향을 주는 관측치들
한계
- 최대 마진 분류기는 아래와 같은 상황에서 사용되지 못함
- 분류 경계에 있는 서포트 벡터들이 경계를 넘나들며 존재하는 경우 사용 불가
- 서포트 벡터에 대한 의존이 심함. 작은 변화에도 큰 영향.
- 데이터에 따라 초평면이 존재하지 않을 수도 있고, 최대 마진 분류기 또한 존재하지 않을 수 있음
서포트 벡터 분류기(Supprot Vector Classifier)
- 최대 마진 분류기의 한계 극복
- 경계면에 일부 위반 발생하더라도 다른 관측치들을 잘 분류할 수 있는 초평면을 찾음(soft margin)
- soft margin : 이상치들을 어느정도 허용하면서 결정경계 설정
- 여전히 초평면을 이용하기 때문에 비선형 분류 경계를 갖는 데이터는 분류 못함
- 슬랙 변수(Slack variable) : 개별 관측치가 마진 혹은 옳지 않은 곳에 위치할 때 0보다 큰 값 가짐
- C : 슬랙의 값을 한정하여 허용 가능한 위반의 수와 그 정도를 결정
- C가 커진다면 위반에 대한 허용도가 커져서 마진 폭이 넓어짐
잘 분류 된다면 슬랙 변수는 0 이지만 슬랙 변수가 0보다 커지는 경우가 2가지 있다
1. 1번과 3번 처럼 잘못된 영역에 있는 경우
2. 2번 처럼 제대로된 영역에 있지만 margin 안에 있는 경우
1번 : yi 가 -1(G1에 있지만 원래는 G2에 있어야할 애니까) 이고 wx+b 가 양수 따라서 1보다 작은 값
2번 : yi 가 -1(G1에 있는 애) 이고 wx+b 가 음수(하지만 절대값이 1보다 작음) 따라서 1보다 작은 값
3번 : yi 가 +1(G2에 있지만 원래는 G1에 있어야할 애니까) 이고 wx+b 가 음수 따라서 1보다 작은 값
슬랙 변수 값을 해당 초평면까지의 거리라고 생각
슬랙 변수의 합을 최소화시켜야함!
무조건 최소화 시키는 게 좋을까?
margin이 줄어들면 error도 줄어든다. margin이 늘어나면 error도 늘어난다.(trade-off)
margin이 너무 좁으면?
overfitting 문제
bias는 낮고 var는 크다. data하에서 bias는 낮음
Support Vector의 수가 줄어들어서 이상치에 민감해진다. 즉 소수의 data에 의존하게 된다.
C가 커질수록 슬랙 변수의 합을 최소화하는 데에 초점을 맞춘다.
C가 작아질수록 마진을 최대화하는 데에 초점을 맞춘다.
C를 통해 overfitting 조절
서포트 벡터 분류기가 소프트 마진을 통해 최대 마진 분류기의 한계를 극복
하지만 데이터가 아래 그림처럼 비선형으로 분류되는 경우 초평면을 찾을 수 없다는 한계 존재
선형 서포트 벡터 머신(SVM)
- 비선형 관계를 설명할 수 없는 서포트 벡터 분류기의 한계를 극복한 방법
- 비선형 커널을 이용한 서포트 벡터 분류기를 SVM이라고 함
- 커널(kernel)함수를 이용해 한 차원 높은 공간에서 초평면을 찾음
- 저차원에서 해결하지 어려운 문제들을 고차원으로 변환시켜 문제 해결
가우시안 RBF 커널
- 방사형 커널
- 가장 성능이 좋아 자주 사용됨
'Python > ML' 카테고리의 다른 글
SVR(Support Vector Regression) (0) | 2023.04.01 |
---|---|
나이브 베이즈(Naive Bayes) 분류 (0) | 2023.02.09 |