1. SVM(Support Vector Machine)이란?
“데이터를 가장 안정적으로 나눌 수 있는 경계선을 찾는 알고리즘”
👉 여기서 핵심은 “정확히 나누는 것”이 아니라
“새로운 데이터에도 흔들리지 않는 경계”를 찾는다는 점
-
장점
- 고차원 데이터에 강함 → feature 수가 샘플 수보다 많아도 비교적 안정적으로 작동
- 일반화 성능이 뛰어남 → 마진을 최대화해 과적합을 자연스럽게 억제
- 커널 트릭으로 비선형 문제 해결 가능
- 메모리 효율적 → 결정 함수에 서포트 벡터만 사용하므로 예측 시 메모리 사용량이 적음
-
단점
- 대규모 데이터에 느림 → 데이터 수가 커질수록 학습 시간 급증
- 하이퍼파라미터 튜닝이 까다로움(C, kernel, gamma 등)
- 결과 해석이 직관적이지 않음(Blackbox)
1.1. 기본 원리
1.1.1.핵심 아이디어: 마진(Margin) 최대화
- 마진(Margin) → 결정 경계와 가장 가까운 데이터 포인트 사이의 거리
👉 SVM의 목표: 마진을 최대화하는 최적의 초평면(Hyperplane) 찾기
“두 집단 사이에 가장 넓은 길(the widest street)을 그어라”
1.1.2. 핵심 구성 요소: 초평면과 서포트 벡터
📌 아주 중요한 포인트
- SVM은 모든 데이터를 보지 않는다. 오직 ‘경계를 위협하는 점’만 본다.
1.2. 현실 세계에 맞춘 도전
이론 속 데이터는 깔끔하지만, 현실 데이터는 그렇지 않다.
1.2.1. 도전 1: 완벽하게 분리되지 않는 데이터(Soft Margin)
-
문제
- 노이즈, 이상치 때문에 완벽 분리(Hard Margin) 불가능한 경우가 대부분
-
해결: Soft Margin
- 일부 데이터의 마진 침범/오분류를 허용(유연함)
- 대신 과적합을 방지하고, 전체적인 일반화 성능을 확보
- 여기서 등장하는 핵심 파라미터가 C(Cost. 오분류에 대한 패널티를 조절하는 값)
-
하이퍼파라미터 C의 의미
- C가 클 때
- 오분류를 거의 허용하지 않음
- 마진 ↓, 경계 복잡
- 👉 과적합 위험 ↑
- C가 작을 때
- 오분류를 많이 허용
- 마진 ↑, 경계 단순
- 👉 과소적합 위험 ↑
C = “오분류에 대한 벌금”
1.2.2. 도전 2: 비선형(Non-Linear)데이터(Kernel Trick)
-
문제
-
해결: 커널 트릭
- 핵심 아이디어: “차원을 바꿔서 생각하자”
(원래 차원에서는 분리 불가능해 보이는 데이터 → 더 높은 차원으로 보내면 분리 가능)
📌 핵심 포인트
- 실제로 고차원 데이터를 계산하지 않음(데이터 고차원으로 변환 x)
- 원래 차원에서 커널 함수로 동일한 효과 구현
커널 함수의 종류: 문제에 맞는 도구 선택
- 선형 커널(Linear Kernel)
- 데이터가 거의 직선으로 분리 가능
- 피처 수가 많고 데이터 수가 적을 때 강력
- 가장 빠르고 해석도 상대적으로 쉬움
- 👉 “커널 트릭 안 쓰는 SVM”
- 다항 커널(Polynomial Kernel)
- 데이터의 다항 관계를 학습
- 차수(degree)가 커질수록 복잡도 급증
- RBF 커널(Radial Basis Function/Gaussian Kernel)
- 가장 많이 쓰이는 기본 커널
- 거리 기반으로 국소 패턴을 잘 잡음
- 대부분의 복잡한 비선형 문제에서 강력한 성능 발휘
- 핵심 파라미터: gamma
- 클수록: 영향 범위 좁음 → 복잡한 경계
- 작을수록: 영향 범위 넓음 → 부드러운 경계
- 시그모이드 커널(Sigmoid Kernel)
- 신경망(Neural Network)과 유사한 방식으로 작동
2. SVR(회귀)
-
장점
- 이상치에 비교적 강함
- 고차원 공간에서 효과적(feature가 샘플 수보다 많아도 성능 유지)
- 과적합 제어 용이(마진 최대화 개념이 일반화 성능을 높임)
- 커널 트릭의 유연성(다양한 커널 함수로 복잡한 비선형 관계 모델링 가능)
- 서포트 벡터만 사용 → 메모리 효율적
-
단점
- 대규모 데이터에서 느림(O(n2))
- 하이퍼파라미터(C, γ, kernel 종류 등) 튜닝에 따라 성능 크게 좌우(민감)
- 결과 해석이 직관적이지 않음
2.1. 핵심 원리
"데이터 대부분을 포함하는 가장 '넓은 길(Tube)'을 찾자"
SVC에서의 마진이 두 클래스 간의 여백이었다면, SVR에서는 마진이 데이터 대부분을 포함하는 튜브인 셈
2.1.1. ε-insensitive Tube
- 예측선 주변에 ε(Epsilon) 폭의 튜브 생성
- eps: 모델이 허용하는 노이즈의 크기. 사용자가 정의하는 하이퍼파라미터
- 튜브 안의 오차는 손실 0(노이즈에 민감하게 반응하지 x)
- Hinge Loss: if |y - f(x)| < ε, then Loss = 0
- 튜브 밖의 오차만 패널티(Loss = |y - f(x)| - ε)
- 𝛏, 𝛏* (Slack Variables): 패널티의 크기
📌 핵심 결과
- 튜브 안 데이터 → 모델에 영향 없음
- 튜브 밖 데이터 → 서포트 벡터
2.1.2. SVR의 목적 함수 직관
SVR은 두 가지를 동시에 만족시키려 한다.

[출처: 오즈코딩스쿨 강의 자료]
- 모델은 최대한 단순하게(마진 최대화, 과적합 방지)
- 튜브 밖 오차는 최소화 → 이 균형을 조절하는 파라미터가 C