Summary
Support vector machine 은 classifier 의 한 유형 : (regression도 가능함).
- Support vector 만을 사용하여 분류의 기준인 hyperplane 이 계산되어지기 때문에 Support vector machine이라는 이름이 유래됨.
- Machine 은 vector 형태의 입력을 통해 decision (클래스의 분류)을 하는 의사결정머신 이라는 점에 착안.
Support vector 를 이용하여 generalization error 를 최소화하는 classifier 를 만들 수 있음.
- 가장 우수한 supervised learning algorithm 중 하나로 꼽힘.
- 단, SVM 의 성능은 hyper parameter (C, gamma) 및 kernel 에 매우 민감한 영향을 받음.
- 또한 입력의 scale 에도 매우 민감함.
Kernel SVM의 장단점과 매개변수
장점
- Kernel SVM은 매우 강력한 모델 : 다양한 데이터셋에서 잘 작동
- SVM은 데이터의 특성이 몇 개 안 되더라도 복잡한 decision boundary를 만들 수 있음.
- 저차원과 고차원의 데이터(= feature (or # of columns) 적을 때와 많을 때)에 모두 잘 작동
단점
- training dataset의 case가 많을 때 (=sample_size가 큰 경우)는 효과적이지 못한 편.
- 10,000개의 샘플 정도면 SVM 모델이 잘 작동
- 100,000개 이상의 데이터셋에서는 속도와 메모리 관점에서 적용이 어려움.
- case가 늘어날 수록 강력한 성능 향상을 보이는 deep ann계열이 최근 SVM보다 많이 사용되는 이유 중 하나임.
- 데이터 전처리(preprocessing)와 hyper-parameter 설정이 매우 중요함.
- 모든 특성이 비슷한 단위이고(예를 들면 모든 값이 픽셀의 컬러 강도) 스케일이 비슷하면 SVM이 잘 동작함.(feature scailing이 매우 중요)
- 최근 대부분의 경우, random forrest나 gradient boosting 과 같은 (전처리가 거의 또는 전혀 필요 없는) 트리 기반 모델을 애플리케이션에 많이 사용
- 커널 SVM에서 중요한 hyper-parameter는 regularization 과 관련된 $C$의 크기 선택, 어떤 커널을 사용할지, 각 커널에 따른 매개변수 등이 있음. : 조합이 매우 다양하고, 각각이 성능에 미치는 영향이 매우 큼.
- RBF kernel의 경우 gamma와 C 모두 모델의 복잡도를 조정하며 둘 다 큰 값이 더 복잡한 모델을 만들어냄. → 두 파라메터간 연관성 존재.
- 연관성이 많은 이 두 매개변수를 잘 설정하려면 C와 gamma를 함께 조정해야 함. → 쉽지 않음.
- SVM 모델은 분석하기 까다로운 편.
- 예측이 어떻게 결정되었는지 이해하기 어렵고 비전문가에게 모델을 설명하기가 난해한 편임.
- 수학적으로 generalization error가 줄어드는 이유가 명확하고, kernel trick을 통한 non-linear 적용이 효과적이나, 개별 학습된 최종 모델을 해석하고 설명하는 것은 다른 문제임.
참고자료
- 헤이스티, 팁시라니, 프리드먼의 『The Elements of Statistical Learning』12장
'Programming' 카테고리의 다른 글
Paradigm (패러다임) (0) | 2022.07.21 |
---|---|
[Python] 현재 사용 중인 Python 및 패키지의 실제 경로 확인하기. (2) | 2022.07.18 |
[Error: Tensorboard] ImportError: cannot import name 'Mapping' from 'collections' (0) | 2022.05.18 |
[ML] Entropy, KL-Divergence, and Cross-entropy (0) | 2022.05.12 |
[Conda] miniconda의 기본 채널 변경 : conda-forge (3) | 2022.04.05 |