본문 바로가기
IT,SW,Data,Cloud,코딩

SVM 알고리즘과 분류기, SVR 알고리즘

by 착실하게 2022. 2. 10.
반응형

1. SVM 알고리즘: Support Vector Machine.

1.1 SVM 장단점

서포트 벡터 머신은 비선형적이고 고차원 공간에서도 성능이 탁월하다는 장점이 있습니다. 그래서 현실 세계의 문제를 풀 때 효과가 좋습니다.

또한 support vector machine은 멀티 클래스 분류도 가능합니다.

보통 의사결정나무로 풀 수 있는 문제는 모두 적용이 가능합니다.

또한 회귀 문제와 같은 연속값을 예측하는 모델에도 적용이 가능합니다. 회귀 문제를 풀 수 있는 SVM을 SVR 이라고 합니다.

단, 수학적인 모델이라서 이해가 어려울 수 있다는 단점이 있습니다.

또한 분류 분석과 회귀 분석은 적용이 가능하지만 SVM의 한계는 확률 분포나 패턴을 흉내 내는 일은 하지 못한다는 점이 있습니다.

1.2 SVM 관련 용어 개념

지지벡터 support vector란, 데이터 그룹 간을 나누는 초평면 (하이퍼 플레인 hyper plane) 이 데이터 그룹에 접하는 위치를 말합니다.

마진 margin 이란, 지지벡터 사이의 거리를 말합니다. 서포트 벡터 머신은, 마진을 최대로 하는 서포트 벡터를 찾는 알고리즘입니다.

매핑 함수란, 차원을 낮출 때 필요한 함수입니다. 서포트 벡터 머신을 비롯한 많은 머신러닝 알고리즘에서 분류 문제를 해결 할 때 , 비선형적인/고차원 문제는 선형적인/저차원 문제로 바꿔서 생각하는 접근 방식을 취하는데, 이럴 때 매핑함수를 사용해서 차원을 바꿉니다.

서포트 벡터 머신에서는 매핑 함수를 찾는 과정이 중요합니다. 매핑 함수를 사용하고 나면, 데이터는 선형적인 형태로 바뀌게 되고, 축은 복잡한 형태로 바뀌게 됩니다.

그래서 데이터 보다 축을 설명하는 것이 더 어려워지는 현상이 발생합니다. 이것을 차원의 저주라고 말합니다. 데이터가 고차원적인 특성을 가질 때 최적의 솔루션을 찾기 힘들어지는 문제를 통틀어서 일컫는 용어입니다.

매핑함수를 구할 수 있는 일반적인 해는 존재하지 않습니다.

매핑함수의 내적은 카파 함수, 커널 트릭, 또는 커널 함수(Kernel Function) 라고 합니다. 매핑 함수는 몰라도 커널 함수를 알면 초평면을 정의할 수 있게 됩니다.

그래서 매핑함수를 구하는 것은 어렵고 때로는 불가능하지만 카파 함수는 매핑 함수 보다 쉽고 알려져 있는 것들도 있어서 데이터 형태에 따라 그중에 하나를 선택하여 서포트 벡터 머신을 만들고 비선형 문제를 해결할 수 있습니다.

카파 함수의 종류에는 선형 커널, 다항 커널, 가우시안 커널, 가우시안 RBF커널, 라플라스 RBF커널 등이 있습니다.

파이썬으로 SVM을 작성할 때 옵션으로 카파 함수를 선택하여 줄 수 있습니다.


반응형

댓글