티스토리 뷰
이번 포스팅은 서포트 백터 머신에 대해 정리해보겠습니다. 머신 러닝을 공부하면서 제가 서포트 백터 머신에 대한 정리한 내용으로 잘못된 부분이 있다면 댓글로 지적해주시면 수정하겠습니다.
1. 서포트 백터 머신
서포트 백터 머신은 기계 학습 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습에 한 분야이며 주로 분류와 회귀 분석을 위해 사용합니다. 두 카테고리가 있다고 가정할때 하나의 새로운 데이터가 들어오면 어떤 카테고리에 속하는지 판단하는 비확율적 선형 모델을 만드는 것이 서포트 백터 머신 입니다.
서포트 백터 머신은 위 그림과 같이 두개의 카테고리가 나눠져 있을때 어떠한 선을 그어 두개의 분류를 가장 잘 표현하는 선이 무엇인지 찾는 방법입니다.
두 개로 나뉜 데이터가 존재할 때 초평면(Heperplane)이 두 집단을 나누게 되는데 각 집단의 경계에서 초평면과 거리를 최대로 만들게 되는 값이 가장 잘 표현한 선이고 최대 거리를 만드는 데이터들을 Support Vector라 합니다. 서포트 백터 머신 알고리즘은 모든 집단에 대해 이러한 서포트 백터들을 찾아 최적화된 형태로 분류 합니다. 서포트 백터 회귀분석은 이러한 서포트 백터 머신의 변형된 형태로서 데이터의 회귀 분석에 사용된다.
자세한 수학식은 SVM 위키를 참조하시기 바랍니다.
2. Nonlinear 할때 SVM은?
만약, 초평면으로 나눌 수 없는 Nonlinear Datasets은 어떻게 SVM을 적용할 수 있을까 하는 궁금증이 생깁니다. 이 문제를 해결 하기 위해서 1992년 커널트릭을 적용해 분류하는 방법이 제안되었습니다.
커널 트릭 함수는 수학적 기교를 사용하는데 데이터를 고차원으로 변형하여 초평면을 찾는 방식입니다.
커널 트릭을 적용해 차원을 높여주고 초평면을 찾습니다. 이러한 방법으로 데이터 구별이 어려운 데이터 셋일때도 차원을 늘려주어 간단하게 SVM을 적용 할 수 있습니다.
3. SVM의 장단점
장점
- 예측 정확도가 높습니다.
- 사용하기 쉽고 SVM을 지원하는 라이브러리가 많습니다.
- 학습 데이터가 적은 분야에도 적용이 가능합니다.
단점
- 여러개의 분류가 존재하면 분류마다 각각의 SVM을 모두 해야합니다.
- 분류가 많아지면 자원 소모가 크고 오래 걸립니다.
'머신러닝' 카테고리의 다른 글
[머신러닝] Dimensionality Reduction - 차원 축소 하는 이유? (0) | 2020.02.17 |
---|---|
차원의 저주 - Curse of Dimensionality (0) | 2020.02.16 |
KNN(K-Nearest Neighbor) 알고리즘 - Python 예제 (1) | 2020.02.01 |
머신러닝의 종류 - 비지도(Unsupervised )학습, 지도(Supervised )학습 (0) | 2020.01.31 |
[Anaconda] 아나콘다 윈도우 설치 - 간단한 머신러닝 개발 환경 세팅하기 (0) | 2020.01.30 |
- Total
- Today
- Yesterday
- 노드
- 30 Day LeetCode Challenge
- Java leetcode
- git
- LeetCode 알고리즘 공부
- react
- 머신러닝
- 파이썬 numpy
- 에라토스테네스
- 리엑트
- vscode
- LeetCode 풀이
- Python
- 지도학습
- Java
- k8s metrics-server running
- 퍼셉트론
- LeetCode 30일 챌린지
- GPTGOT
- k8s metrics-server
- Node
- Component
- numpy
- React 프로젝트 생성
- LeetCode 5월 챌린지
- 파이썬
- 넘파이
- GPT서비스
- CHATGOT
- 버츄얼스튜디오코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |