서포트 벡터 머신(SVM, Support Vector Machine)
은 분류와 회귀에 모두 사용되는 강력한 지도학습 알고리즘이야.
하지만 주로 **이진 분류(binary classification)**에 많이 쓰이지.
⸻
핵심 개념:
“두 클래스를 가장 넓은 간격(margin)으로 나누는 초평면(hyperplane)을 찾자!”
⸻
동작 원리:
1. 데이터들을 직선(혹은 초평면)으로 분리
• 단순 2차원 데이터라면 직선으로 분리
• 고차원에서는 초평면(Hyperplane)
2. 마진(Margin)을 최대화
• 클래스 사이 경계선과 **가장 가까운 데이터(서포트 벡터)**들 사이의 거리를 최대화
• 이게 바로 SVM의 강력함 → 일반화 성능이 좋음
3. 선형 분리가 어려운 경우?
• 커널 트릭(kernel trick)을 써서 저차원 데이터를 고차원으로 변형
• 복잡한 비선형 경계도 가능 (ex. 원형, 나선형 패턴)
⸻
예시:
• 이메일 분류: 스팸 vs 정상
• 암 진단: 양성 vs 음성
• 이미지: 고양이 vs 강아지
⸻
종류:
SVM 타입 설명
Linear SVM 선형 결정 경계 (직선 혹은 초평면)
Nonlinear SVM 커널 함수 사용 (RBF, polynomial 등)
SVR (Support Vector Regression) 회귀 문제에 적용하는 SVM
⸻
장점:
• 마진 기반 → 일반화 성능 뛰어남
• 커널 사용 → 비선형 문제 처리 가능
• 고차원 데이터에도 잘 작동
단점:
• 큰 데이터셋엔 느림
• 하이퍼파라미터(예: C, gamma) 튜닝 필요
• 결과 해석이 어려움
⸻
시각적으로 말하면:
두 클래스가 있을 때, SVM은 **“가장 여유 있게 나눌 수 있는 선”**을 찾아서 클래스 간 충돌을 최소화해. 이게 다른 모델들과의 가장 큰 차이야.
⸻
Q1: SVM의 커널 함수는 어떤 종류가 있고, 각각 언제 쓰면 좋아?
Q2: SVM과 로지스틱 회귀는 어떤 상황에서 선택이 갈릴까?
Q3: SVM은 다중 클래스 문제(multi-class classification)도 해결할 수 있나?
'무근본 IT 지식 공유' 카테고리의 다른 글
최대 마진 초평면(Maximum Margin Hyperplane)이란?! -서포트벡터머신 (0) | 2025.05.09 |
---|---|
[머신러닝] K-NN (K-Nearest Neighbors) 방식이 뭐야?! (0) | 2025.05.09 |
[무근본JAVASCRIPT] javascript에서 serialize가 필요한 이유 (4) | 2024.11.27 |
[무근본 DB지식] Oracle DB에서 Shrink 작업이란? (0) | 2024.10.14 |
[무근본DB지식] 오라클 쿼리로 간단하게 테이블 컬럼 정보 조회하는 방법 ! (0) | 2024.10.05 |
댓글