서포트 벡터 머신(SVM) 완전 정리_ADsP 3과목

🧱 서포트 벡터 머신(SVM) 완전 정리 💡

“데이터를 가장 여유 있게 가르는 강력한 분류기!”

(회귀 버전: SVR ✨)


🎯 1️⃣ 개념 한 줄 요약

SVM은 두 클래스를 가장 넓은 ‘여유(마진)’로 구분하는 선(결정경계) 을 찾는 알고리즘이에요.

이 경계를 만드는 데 중요한 데이터들을 서포트 벡터(Support Vectors) 라고 부릅니다.

💬 쉽게 말하면,

“두 그룹을 구분하는 선을 그릴 때, 가장 안정적인 선을 찾는 모델이에요!”


🧠 2️⃣ SVM의 핵심 아이디어: 마진(Margin) 최대화

  • 마진(Margin) : 경계선과 가장 가까운 데이터 포인트 간의 거리
  • 목표 : 이 거리를 최대로 만드는 결정경계(초평면) 찾기
  • 완벽히 분리 안 될 때는 👉 소프트 마진(Soft Margin) 으로 약간의 오차 허용

📌 핵심 문장

“완벽하게 나누는 것보다 여유 있게 나누는 것이 더 똑똑하다!”


⚙️ 3️⃣ 두 가지 중요한 하이퍼파라미터 💡

① C (규제 강도)

C 값특징결과
🔺 크다오분류 거의 허용 안 함복잡한 경계 → 과적합 위험
🔻 작다오분류 조금 허용단순한 경계 → 과소적합 가능

💬 쉽게 말해,

“C는 모델의 엄격함을 조절하는 슬라이더예요!”


② γ (감마, RBF 커널에서 사용)

γ 값특징결과
🔺 크다각 점의 영향 범위 좁음요철 많은 경계 → 과적합 위험
🔻 작다영향 범위 넓음부드러운 경계 → 과소적합 가능

💬 즉,

“γ는 각 점의 영향 반경 크기를 결정하는 파라미터예요.”


🎛️ 4️⃣ 커널 트릭(Kernel Trick) — 비선형 데이터 해결사!

선형으로 나눌 수 없는 데이터를 고차원으로 옮겨,

선형처럼 분리할 수 있게 도와주는 마법 같은 변환이에요. 🪄

커널 종류특징주로 사용하는 상황
🔹 선형(Linear)단순하고 빠름텍스트처럼 고차원 희소데이터
🔸 다항(Polynomial)곡선 경계 가능패턴이 복잡한 데이터
🌊 RBF(가우시안)가장 일반적거의 모든 비선형 데이터
🌗 시그모이드드물게 사용신경망 형태와 유사할 때

✅ 기본 팁:

“먼저 Linear, 안 맞으면 RBF 써보기!”


🧩 5️⃣ 서포트 벡터와 손실 함수

  • 서포트 벡터(Support Vectors)
  • → 결정경계 근처에 있는 핵심 데이터들로, 실제로 경계를 결정하는 역할
  • 힌지 손실(Hinge Loss)
  • → 마진 바깥쪽은 패널티 없음,
  • 경계 근처나 침범한 데이터만 손실 계산

💬 즉,

“SVM은 딱 중요한 데이터만 써서 선을 그리는 효율적인 모델이에요!”


🧪 6️⃣ 실무에서 자주 쓰는 설정들

스케일링 필수 – 거리 기반 모델이라 표준화 꼭 해야 함

불균형 데이터 – class_weight=’balanced’ 옵션으로 조정

다중분류 – OvR(One vs Rest) 또는 OvO(One vs One) 전략 사용

확률 예측 – 기본적으로 확률 아님! → probability=True로 설정 시 가능

튜닝 팁 – 교차검증(k-Fold) + GridSearchCV로 C, γ 조정


📊 7️⃣ 평가 & 해석 포인트

  • 평가지표: Accuracy, F1, Recall, ROC-AUC
  • 비선형 커널 사용 시 해석 어려움 (로지스틱 회귀보다 덜 직관적)
  • 서포트 벡터 개수 많음 → 경계 복잡 → 과적합 위험 신호 🚨

🔬 8️⃣ SVM vs 다른 모델 비교

모델장점단점유리한 상황
🧱 SVM고차원, 비선형에 강함확률 출력 어려움데이터 크기 중간, 경계 뚜렷할 때
📊 로지스틱 회귀해석력 좋음(계수 의미)비선형 약함단순한 선형 관계 문제
🌳 트리/앙상블범주형/비선형에 강함많은 데이터 필요복잡한 데이터 패턴

🧰 9️⃣ 하이퍼파라미터 튜닝 순서

1️⃣ 데이터 스케일링 (Train 데이터 기준)

2️⃣ Linear SVM으로 기본 성능 확인

3️⃣ RBF로 확장 후 C, γ 조합 탐색

4️⃣ Stratified k-Fold로 교차검증

5️⃣ 최적 모델로 전체 데이터 재학습 → Test 1회 평가


🧮 10️⃣ 직관으로 이해하기

  • C 크게 → “오분류 싫어!” → 복잡한 경계 (과적합 ⚠️)
  • C 작게 → “조금 틀려도 돼~” → 부드러운 경계 (일반화 👍)
  • γ 크게 → “한 점에만 민감!” → 요철 많은 경계
  • γ 작게 → “넓게 보고 판단!” → 완만한 경계

📦 11️⃣ 보너스 🎁 — SVM 회귀(SVR)

분류가 아니라 수치 예측을 하고 싶을 때 쓰는 버전이에요.

  • Epsilon-Insensitive Loss : 오차가 ε 안에 있으면 무시, 그 밖만 벌점
  • 파라미터 : C(규제), ε(허용폭), γ(RBF용)
  • 장점 : 이상치에 강하고, 비선형 회귀 가능

🧾 12️⃣ ADsP 시험 핵심 요약 ✍️

✅ 마진 최대화 & 서포트 벡터 개념

✅ Soft Margin → C로 오분류 허용 조절

✅ 커널 트릭: 선형 / 다항 / RBF 구분

✅ C, γ 변화에 따른 과적합·과소적합 직관

✅ 스케일링 필수

✅ 불균형 시 class_weight=’balanced’

✅ SVM은 기본 확률 출력 ❌

✅ 다중분류: OvR / OvO 전략 사용


🌈 마무리 한 줄 요약

💡 SVM = “가장 여유 있게 데이터를 나누는 선(경계)”을 찾는 모델!

C(엄격함)와 γ(영향 반경)를 잘 조절하고,

스케일링 + 교차검증까지 챙기면 💪 최고의 분류기 완성!