반응형

서포트 벡터 머신 4

[ISLR] 서포트 벡터 머신(SVM, Support Vector Machine)

서포트 벡터 머신(Support Vector Machine) 서포트 벡터 머신(SVM, support vector machine)은 서포트 벡터 분류기(support vector classifier)의 확장으로, 커널(kernel)을 사용하여 변수 공간을 확장한 결과입니다. 변수와 출력값 사이의 비선형 관계를 설명하기 위하여 변수 공간을 확장해야 하는데, SVM은 커널을 사용하여 효율적인 연산량으로 변수 공간을 확장한 방법입니다. 서포트 벡터 분류기 문제에 대한 해는 관측값들의 내적만이 관련이 있습니다. 두 관측치 사이의 내적은 다음과 같이 주어집니다. 선형 서포트 벡터 분류기(Linear support vector classifier)는 다음과 같이 나타낼 수 있습니다. 여기서 n개의 파라미터 $\al..

[ISLR] 비선형 결정 경계(Non-linear Decision Boundaries)

비선형 결정 경계에서 분류(Classification with Non-linear Decision Boudaries) 만약 두 class 사이의 경계가 선형이면, 두 개의 class를 지닌 dataset에서 서포트 벡터 분류기(support vector classifier)는 자연스러운 선택입니다. 하지만 비선형 class 경계를 지닌 데이터셋의 경우에는 어떨까요? 위 그림을 살펴보면 Support vector classifier가 찾은 선형 경계가 두 class 분류를 수행하지 못합니다. 이처럼 변수와 출력값 사이의 비선형 관계가 존재하는 경우에 선형 분류기는 성능이 좋지 않습니다. 이 경우에 변수들의 고차 다항식, 3차, 2차를 사용하여 feature space를 확장함으로써 class 사이의 비선형..

[OpenCV 머신러닝] OpenCV에서 서포트 벡터 머신(SVM) 사용하기 - cv2.ml.SVM_create, cv2.ml_SVM.trainAuto

이전 포스팅에서 서포트 벡터 머신(SVM)에 대해 알아보았습니다. 이번에는 OpenCV로 서포트 벡터 머신을 사용하는 방법에 대해 알아보겠습니다. 객체 생성 -> SVM 타입 지정 -> SVM 커널 지정 -> SVM 자동 학습(k-폴드 교차 검증) -> predict 순으로 진행됩니다. 1. SVM 객체 생성 - cv2.ml.SVM_create() cv2.ml.SVM_create() -> retval • retval: cv2.ml_SVM 객체 cv2.ml.SVM_create() 함수로 cv2.ml_SVM 객체를 반환받을 수 있습니다. 2. SVM 타입 지정 - cv2.ml_SVM.setType cv.ml_SVM.setType(type) -> None • type: SVM 종류 지정. cv2.ml.SVM_..

[OpenCV 머신러닝] 서포트 벡터 머신 알고리즘이란?

서포트 벡터 머신(SVM, Support Vectir Machine) 알고리즘 SVM 알고리즘은 머신러닝 알고리즘에서 가장 유명하고 많이 사용되고 있습니다. SVM 알고리즘은 기본적으로 두 개의 그룹(데이터)을 분리하는 방법으로 데이터들과 거리가 가장 먼 초평면(hyperplane)을 선택하여 분리하는 방법입니다. 데이터를 분리하기 위해 직선이 필요합니다. 직선이 한쪽 데이터로 치우쳐져 있으면 데이터에 변동이나 노이즈가 있을 때 제대로 구분 못할 수 있습니다. 이러한 문제점을 해결하기 위해 margin을 이용하게 됩니다. 이 직선을 초평면(hyperplane)이라고 합니다. Support Vector은 데이터를 의미합니다. margin은 초평면과 가장 가까이 있는 데이터와의 거리를 의미합니다. 마진을 최..

반응형