서포트 벡터 머신(Support Vector Machine, SVM)은 지도 학습(Supervised Learning) 알고리즘 중 하나로, 주로 분류(Classification) 문제를 해결하는 데 사용됨. 데이터를 학습하여 가장 최적의 결정 경계(Decision Boundary) 를 찾고, 이를 기반으로 새로운 데이터가 어느 범주에 속하는지 예측하는 방식
1. SVM의 핵심 개념
SVM이 데이터를 분류하는 과정에서 가장 중요한 개념은 초평면(Hyperplane) 과 서포트 벡터(Support Vector)
2. SVM의 작동 원리
1) 데이터를 분류할 수 있는 초평면을 찾음
2) 마진을 최대화
3) 새로운 데이터 분류
3. 소프트 마진과 하드 마진
4. 커널 트릭(Kernel Trick)
때때로 데이터가 선형적으로 분리되지 않는 경우가 있는데 이때 커널 함수(Kernel Function) 를 사용하여 저차원의 데이터를 고차원 공간으로 변환하면, 선형적으로 분류할 수 있음
◆ 대표적인 커널 함수:
5. SVM의 장점과 단점
장점 | 단점 |
|
|
Python의 scikit-learn 라이브러리를 사용하여 간단한 SVM 예제를 구현
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np
# 데이터 불러오기
iris = datasets.load_iris()
X = iris.data[:, :2] # 꽃받침 길이, 너비만 사용 (2D 시각화 위해)
y = iris.target
# 학습/테스트 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# SVM 모델 학습
model = SVC(kernel='linear') # 선형 커널 사용
model.fit(X_train, y_train)
# 예측 및 정확도 출력
accuracy = model.score(X_test, y_test)
print(f'테스트 데이터 정확도: {accuracy:.2f}')
분류 - K-최근접 이웃(K-Nearest Neighbors) (1) | 2024.12.18 |
---|---|
분류 - 의사결정나무(Decision Tree) (2) | 2024.12.16 |
분류 - 로지스틱 회귀(Logistic Regression) (2) | 2024.11.28 |
분류(Classification) (0) | 2024.11.26 |
회귀분석-Elastic Net (1) | 2024.11.20 |