5. 서포트 벡터 머신

SVM이란~ 선형이나 비선형 분류, 회귀, 이상치 탐색에 사용하는 모델

1. 선형 SVM 분류

image.png

<aside> 📌

SVM은 스케일에 민감

→x, y 축을 조정하면, 결정 경계가 좋아짐

</aside>

  1. 소프트 마진 분류

    하드 마진 분류: 모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있는 것

    1. 문제점
      • 데이터가 선형적으로 구분될 수 있어야 제대로 동작
      • 이상치에 민감
    2. 해결법
      • 소프트 마진 분류: 도로의 폭을 가능한 넓게 유지하는 것과 마진오류 사이에 적절한 균형이 필요
      • 하이퍼 파라미터를 지정하여, 모델을 만듦

2. 비선형 SVM 분류

두 번째 특성을 추가하여, 만들어진 2차원 데이터셋을 선형적으로 구분

image.png

  1. 다항식 커널

    1. 다항식 특성을 추가하는 것은 간단하지만, 낮은 차수의 경우 복잡한 데이터셋을 잘 표현하지 못하고, 높은 차수의 경우 모델을 느리게 만듦
    2. 커널트릭: 실제로 특성을 추가하지 않으면서, 다항식 특성을 많이 추가한 것 과 같은 결과를 얻을 수 있음
    3. 모델이 과대적합인 경우 다항식의 차수를 줄여야 하고, 과소적합이면, 차수를 늘려야 함
  2. 유사도 특성

    image.png

    1. 가우시안 방사 기저 함수: 유사도 함수
    2. 유사도 함수(샘플이 랜드마크와 닮았는지를 측정)로 계산한 특성을 추가
    3. 랜드마크를 선택하는 법
      • 데이터 셋에 있는 모든 샘플 위치에 랜드마크를 설정
  3. 가우시안 RBF 커널

    Screenshot 2024-10-25 at 3.35.49 PM.png

    1. 커널 트릭이 유사도 특성을 추가하는 것과 같은 비슷한 결과를 얻을 수 있음

    2. 감마를 증가시키면, 종 모양이 좁아져 샘플의 영향 범위가 줄어듬

      즉, 하이퍼 파라미터(r: 감마)가 규제의 역할을 함

      하이퍼 파라미터 C와 비슷

<aside> 📌

tip

선형 커널을 가장 먼저 시도해야 함(LinearSVC가 SVC(kernel = ‘linear’)보다 훨씬 빠름)

</aside>

  1. 계산 복잡도

    Linear SVC: 훈련 복잡도 O(m x n)

    SVC: 훈련 복잡도 O(m^2 x n) ~ O(m^3 x n)

3. SVM 회귀