ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 서포트 벡터 머신
    전공 서적/핸즈온 머신러닝 2018. 9. 12. 12:15
    1. 서포트 벡터 머신
      1. 매우 강력하고 다목적인 머신러닝 모델
        복잡한 분류 문제에 들어맞으며 작거나 중간 크기의 데이터셋에 적합하다.
    2. 선형 SVM 분류
      1. 선형 SVM 분류
        1. 클래스 사이의 가장 폭이 넓는 도로를 찾는 방법 라지 마진 분류 라고도 한다.
        2. 도로 바깥에 훈련 샘플을 추가해도 결정 경계에 영향을 미치지 않으며 서포트 벡터에 의해 경계가 결정된다.
        3. 라지 마진 분류
        4. SVM 특성 스케일에 민감하다.
      2. 소프트 마진 분류
        1. 모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있는 것을 하드 마진 분류라고 한다.
        2. 하드 마진 분류는 데이터가 선형적으로 구분될 있어야 제대로 작동하며, 이상치에 민감하다.
        3. 이상치에 민감한 하드 마진
      3. 하드 마진의 문제를 피하기 위하여 도로의 폭을 넓게 유지하는 것과 마진 오류 사이에 적절한 균형점을 찾는 소프트 마진 분류 사용된다.
      4. 좁은 마진과 넓은 마진
    3. 비선형 SVM 분류
      1. 비선형 SVM 분류
        1. 비선형 데이터셋을 다루는 방법 하나는 다항 특성을 추가하는 것이다.
        2. 특성을 추가하여 선형적으로 구분되는 데이터셋 만들기
      2. 유사도 특성 추가
        1. 샘플이 특정 랜드마크 얼마나 닮았는지 측정하는 유사도 함수 계산한 특성을 추가하는 방법
        2. 가우시안 RBF 사용한 유사도 특성
      3. 가우시안 RBF 커널
        1. 추가 특성을 계산하기 위해서는 연산 비용이 많이 소모된다.
           
          커널 트릭을 사용할 경우 유사도 특성을 많이 추가하는 것과 비슷한 결과를 얻을 있다.
        2. 매개변수 C 커질수록 모델에 과대적합 되고, gamma 커질수록 결정 경계의 곡률이 높아진다.
        3. 커널 트릭
          1. 어떤 수식이 벡터의 내적을 포함하고 있을 때 그 내적을 커널 함수로 대치하여 계산하는 기법
          2. SVM에서는 특징 벡터를 이용하는 것이 아니라 벡터의 내적만을 사용한다.

    수학적으로 고차원 데이터를 내적하는 것과 내적한 결과를 고차원으로 보내는 것은 동일하기에

    계산은 원래의 공간에서하고 분류는 고차원에서 하는 커널 트릭을 사용할 수 있다.

    1. 계산 복잡도
      1. SVM 분류를 위한 사이킷런 파이썬 클래스 비교

    파이썬 클래스

    시간 복잡도

    외부 메모리 학습 지원

    스케일 조정의 필요성

    커널 트릭

    LinearSVC

    O(m×n)

    아니오

    아니오

    SGDClassifier

    O(m×n)

    아니오

    SVC

    O(m^2×n)~O(m^3×n)

    아니오

    1. SVM 회귀
      1. 제한된 마진 오류 안에 가능한 많은 샘플이 들어가도록 학습한다.

    도로의 폭은 하이퍼파라미터 으로 조절한다.


    '전공 서적 > 핸즈온 머신러닝' 카테고리의 다른 글

    앙상블 학습과 랜덤 포레스트  (0) 2018.09.23
    결정 트리  (0) 2018.09.13
    모델 훈련  (0) 2018.08.30
    분류  (0) 2018.08.23
    머신러닝 프로젝트 처음부터 끝까지  (0) 2018.08.22

    댓글