서포트벡터 머신이란?
서포트벡터 머신, SVM은 데이터의 경계를 가장 명확하게 정의하는 기법이다.
차원이 하나 낮은 공간에 설정된 경계선인 초평면을 찾아내는 것을 목표로 한다.
SVM은 벡터를 활용해 데이터의 본질적인 경계를 찾아낸다.
초평면이란?
초평면은 데이터를 분리하기 위해 차원이 하나 낮은 공간에 설정된 결정 경계선이다.

w는 가중치 벡터이고, T는 전치를 의미하며 초평면의 방향을 결정하는 역할을 한다.
계산은 가중치 벡터(w)와 입력 벡터(x)의 내적에 절편을 더한 값이 0이 되는 점들의 집합을 의미한다.
ex)
w = ( 1
2 )
x = ( 2
-1.5 )이고 b는 1일 때
wᵀx + b = 1*2 + 2*(-1.5) + 1 = 0으로 계산된다.

서포트벡터란?
SVM에서 서포트벡터는 초평면에 정확히 닿아 있는 학습 데이터를 말한다.
결정 경계의 위치를 직접적으로 결정하는 핵심 요소로 경계를 고정시키는 역할을 한다.
서로 다른 두 클래스의 데이터가 겹치지 않도록 하면서,
두 클래스 사이의 마진을 최대화 하는 최적의 초평면을 찾는 것을 목표로 한다.
마진이란?
마진(margin)은 두 클래스 간의 완충 공간으로 데이터가 결정 경계에 지나치게 가까이 위치하지 않도록 하여
모델의 성능을 높이는 역할을 한다.
그러면서도 SVM은 마진의 폭이 가장 넓은 초평면을 선택한다.
이때 초평면 = 결정 경계선 = 식별 평면 다 같은 말이고, 문맥에 따라서 사용할 뿐이다.

위 그림중 왼쪽그림은 학습하기 전으로 두 클래스를 구분하는 선을 찾긴 했지만
마진이 최대화되지는 않은 모습이다.
오른쪽그림은 SVM이 학습을 하여 가장 안정적인 결정 경계선을 찾아낸 모습이다.
커널 트릭이란?
커널 함수를 이용해서 입력 데이터를 고차원으로 매핑한다.
이는 데이터를 실제로 고차원으로 올리지 않으면서,
고차원에서 선형 분리가 가능한 효과를 계산 상으로만 만들어내는 알고리즘이다.

쉽게 말해서, 직선으로 분리가 어려운 2차원 데이터를
한 차원 높이면 원형으로 표현해 위쪽/아래쪽으로 분리할 수 있다는 것이다.
SVM에서는 벡터의 내적을 이용해서 같은 클래스일 확률을 계산한다.
내적이란?
벡터끼리 비슷한 방향인지 측정하는 계산이다.
두 벡터 A=(a₁, a₂), B=(b₁, b₂) 라면,
A*B = a1b1 + a2b2 이다.
x값끼리, y값끼리 곱한 결과를 합친 것이다.
양수이면 같은 방향, 음수이면 반대방향이고 0일 경우 직각방향을 의미한다.
SVM에서 내적의 활용:

여기서 중요한 점은
SVM은 데이터 자체를 쓰는 것이 아니라
벡터끼리의 내적값으로만 판단한다는 것이다.
커널 함수:

φ(x)는 고차원으로 매핑한 벡터인데,
그걸 실제로 만들지 않고 커널함수가 내적값을 계산해서
SVM에 넣어주는 것이다.
'Python > 머신러닝' 카테고리의 다른 글
| 머신러닝 개념 정리) 랜덤 포레스트, 유의 확률, 카이제곱 통계량, F 통계량 (0) | 2025.11.28 |
|---|---|
| 머신러닝 개념 정리) 결정 트리, 엔트로피 지수, 지니 지수, CART 알고리즘 (0) | 2025.11.23 |
| 머신러닝 개념 정리) K-최근접 이웃, 유클리드 거리, 맨해튼 거리, 체비쇼프 거리, 민코스프키 거리 (0) | 2025.11.22 |
| 머신러닝 개념 정리) 로지스틱 회귀, 시그모이드 함수, 소프트맥스 회귀 (0) | 2025.11.22 |
| 머신러닝 개념 정리) 가중합, 결정계수, 선형 회귀, 다중 회귀 (0) | 2025.11.22 |
