본문 바로가기
  • 데이터에 가치를 더하다, 서영석입니다.
공부하는 습관을 들이자/Machine Learning For Study

Hands-on ML : 5.1 선형 SVM 분류

by 꿀먹은데이터 2022. 5. 26.

SVM이란?

SVM은 서포터 벡터 머신으로 매우 강력하고 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델이다. SVM은 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이셋에 적합하다.

5.1 선형 SVM 분류

SVM 분류기를 클래스 사이에 가장 폭이 넓은 도로를 찾는 것으로 생각할 수 있다.

라지 마진 분류

도로 바깥쪽에 훈련 샘플을 더 추가해도 결정 경계에는 전혀 영향을 미치지 않는다. 도로 경계에 위치한 샘플에 의해 전적으로 결정된다. 이런 샘플을 서포트 벡터라고 한다.

특성 스케일에 따른 민감섬

5.1.1 소프트 마진 분류

모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있다면 이를 하드 마진 분류(hard margin classification)라고 한다.

하드 마진 분류에는 두 가지 문제점이 있다.

데이터가 선형적으로 구분될 수 있어야 제대로 작동하며, 이상치에 민감하다.

 

왼쪽 그래프에서는 하드 마진을 찾을 수 없다. 하지만 오른쪽 그래프의 결정 경계는 이상치가 없던 결정 경계와 매우 다르고 일반화가 잘된 것 같지 않다.

왼쪽 그래프에서는 하드 마진을 찾을 수 없다. 하지만 오른쪽 그래프의 결정 경계는 이상치가 없던 결정 경계와 매우 다르고 일반화가 잘된 것 같지 않다.

 

이런 문제를 피하기 위해 좀 더 유연한 모델이 필요하다. 그러므로 도로의 폭을 가능한 한 넓게 유지하는 것과 마진 오류 사이에 적절한 균형을 잡아야 한다. 이를 소프트 마진 분류 (soft margin classification) 라고 한다.

C는 이런 하이퍼파라미터 중에 하나이다. 이를 낮게 설정하면 왼쪽 그림과 같은 모델을 만든다. 높게 설정하면 오른쪽과 같은 모델을 얻는다.

마진 오류는 나쁘므로 일반적으로 적은 것이 좋다. 하지만 이 경우 왼쪽 모델에 마진 오류가 많지만 일반화가 잘 된 모델이라고 볼 수 있다.

 

import numpy as np
from sklearn import datasets
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC

iris = datasets.load_iris()
X = iris["data"][:, (2, 3)]  # 꽃잎 길이, 꽃잎 너비
y = (iris["target"] == 2).astype(np.float64)  # Iris virginica

svm_clf = Pipeline([
        ("scaler", StandardScaler()),
        ("linear_svc", LinearSVC(C=1, loss="hinge", random_state=42)),
    ])
svm_clf.fit(X, y)

 

Pipeline(steps=[('scaler', StandardScaler()), ('linear_svc', LinearSVC(C=1, loss='hinge', random_state=42))])

svm_clf.predict([[5.5, 1.7]])

 

array([1.])

 sklearn의 SVM 모델을 최적화할 땐 보통 SGDClassifier같은 일반적인 Gradient Descent Algorithm을 이용한다.

 

자세한 코드는 저의 깃허브를 참고하시면 됩니다.

https://github.com/rootofdata/handson-ML

 

GitHub - rootofdata/handson-ML: handson ML

handson ML. Contribute to rootofdata/handson-ML development by creating an account on GitHub.

github.com

참고 문헌 :

https://book.naver.com/bookdb/book_detail.nhn?bid=16328592

 

핸즈온 머신러닝

머신러닝 전문가로 이끄는 최고의 실전 지침서 텐서플로 2.0을 반영한 풀컬러 개정판 『핸즈온 머신러닝』은 지능형 시스템을 구축하려면 반드시 알아야 할 머신러닝, 딥러닝 분야 핵심 개념과

book.naver.com