Support Vector Machine (SVM)은 한 클래스의 데이터 점을 다른 클래스의 데이터 점으로부터 가장 잘 분리하는 초평면을 찾는 지도 머신러닝 알고리즘입니다.
Support Vector Machine (SVM)은 지도 학습 알고리즘으로, 한 클래스의 데이터 포인트와 다른 클래스의 데이터 포인트를 가장 잘 구분하는 초평면을 찾는다.
초평면은 서로 다른 클래스의 데이터 포인트를 분리하는 결정 경계로, 2차원 공간에서는 직선이 될 수 있고 n차원 공간에서는 평면이 될 수 있다.
서포트 벡터는 분리 초평면에 가장 가까운 데이터 포인트로, 마진의 경계를 형성하고 초평면의 위치를 결정한다.
SVM은 커널 함수를 사용해 데이터를 고차원 공간으로 변환하여 클래스 구분을 용이하게 만든다. 이를 일반적으로 커널 트릭이라고 한다.
서포트 벡터 회귀(SVR)는 회귀 문제에 SVM을 적용한 것으로, 정해진 허용 오차(마진) 내에서 데이터를 가장 잘 설명하는 초평면을 찾고, 그 허용 범위를 벗어난 오차에 대해서는 페널티를 부과한다.
SVM은 스팸 탐지 및 감성 분석을 위한 자연어 처리, 영상 분류 및 얼굴 검출을 위한 컴퓨터 비전, 음성 인식을 위한 신호 처리, Anomaly Detection, 단백질 분류를 위한 생물정보학 등에서 사용된다.
SVM은 고차원 및 구조화되지 않은 데이터를 효과적으로 처리하고, 정규화로 과적합에 덜 민감하며, 선형 분류기에서는 명확하고 해석 가능한 결정 경계를 제공하고, 소규모 데이터셋에서 높은 정확도를 보인다.
계산 비용과 메모리 요구량이 커서 대규모 데이터셋에는 부적합하며, 마진을 최대화하는 것이 어려운 잡음이 많은 데이터에는 적합하지 않고, 비선형 모델에서 해석가능성이 매우 중요한 경우에도 적합하지 않다.
하드 마진 SVM은 선형적으로 분리 가능한 데이터에 대해 오분류 없이 완벽한 분리를 요구하는 반면, 소프트 마진 SVM은 비분리 데이터의 경우 마진을 극대화하기 위해 일부 오분류를 허용한다.
fitcsvm 및 fitrsvm 함수를 사용하거나, 코드 작성 없이 전체 워크플로를 수행할 수 있는 Classification Learner 앱과 Regression Learner 앱을 통해 대화형으로 SVM 모델을 학습할 수 있다.
자료
문서, 예제, 비디오 등을 통해 여러분의 지식을 확장할 수 있습니다.