ClassificationSVM
단일 클래스 및 이진 분류용 서포트 벡터 머신(SVM)
설명
ClassificationSVM은 단일 클래스 학습 및 2-클래스 학습에 사용할 수 있는 서포트 벡터 머신(SVM) 분류기입니다. 훈련된 ClassificationSVM 분류기는 훈련 데이터, 모수 값, 사전 확률, 서포트 벡터, 알고리즘 구현 정보를 저장합니다. 이러한 분류기를 사용하여 점수-사후 확률 변환 함수 피팅(fitPosterior 참조) 및 새 데이터에 대한 레이블 예측(predict 참조)과 같은 작업을 수행할 수 있습니다.
생성
ClassificationSVM 객체는 fitcsvm을 사용하여 생성할 수 있습니다.
속성
객체 함수
compact | Reduce size of machine learning model |
compareHoldout | Compare accuracies of two classification models using new data |
crossval | Cross-validate machine learning model |
discardSupportVectors | Discard support vectors for linear support vector machine (SVM) classifier |
edge | Find classification edge for support vector machine (SVM) classifier |
fitPosterior | Fit posterior probabilities for support vector machine (SVM) classifier |
gather | Gather properties of Statistics and Machine Learning Toolbox object from GPU |
incrementalLearner | Convert binary classification support vector machine (SVM) model to incremental learner |
lime | Local interpretable model-agnostic explanations (LIME) |
loss | Find classification error for support vector machine (SVM) classifier |
margin | Find classification margins for support vector machine (SVM) classifier |
partialDependence | Compute partial dependence |
plotPartialDependence | Create partial dependence plot (PDP) and individual conditional expectation (ICE) plots |
predict | 서포트 벡터 머신(SVM) 분류기를 사용하여 관측값 분류 |
resubEdge | Resubstitution classification edge |
resubLoss | Resubstitution classification loss |
resubMargin | Resubstitution classification margin |
resubPredict | Classify training data using trained classifier |
resume | Resume training support vector machine (SVM) classifier |
shapley | Shapley values |
testckfold | Compare accuracies of two classification models by repeated cross-validation |
예제
세부 정보
알고리즘
SVM 이진 분류 알고리즘의 수학적 공식은 이진 분류를 위한 서포트 벡터 머신 항목과 서포트 벡터 머신 이해하기 항목을 참조하십시오.
NaN,<undefined>, 빈 문자형 벡터(''), 빈 string형(""),<missing>값은 누락값을 나타냅니다.fitcsvm은 누락값인 응답 변수에 대응되는 데이터의 전체 행을 제거합니다. 총 가중치를 계산할 때(다음 글머리 기호 항목 참조),fitcsvm은 누락값인 예측 변수를 하나라도 갖는 관측값에 대응되는 가중치를 모두 무시합니다. 이 동작은 균형 클래스 문제에서 불균형 사전 확률을 초래할 수 있습니다. 따라서, 관측값 상자 제약 조건은BoxConstraint와 일치하지 않을 수 있습니다.Cost,Prior및Weights이름-값 인수를 지정할 경우 출력 모델 객체는 지정된 값을 각각Cost,Prior및W속성에 저장합니다.Cost속성이 사용자가 지정한 비용 행렬(C)을 수정 없이 저장합니다.Prior속성과W속성은 각각 정규화한 후의 사전 확률 및 관측값 가중치를 저장합니다. 모델 훈련 시, 소프트웨어는 비용 행렬에 있는 벌점을 통합하도록 사전 확률과 관측값 가중치를 업데이트합니다. 자세한 내용은 오분류 비용 행렬, 사전 확률 및 관측값 가중치 항목을 참조하십시오.Cost및Prior이름-값 인수는 2-클래스 학습에 사용됩니다. 단일 클래스 학습의 경우Cost및Prior속성은 각각0과1을 저장합니다.2-클래스 학습의 경우,
fitcsvm은 상자 제약 조건을 훈련 데이터의 각 관측값에 할당합니다. 관측값 j의 상자 제약 조건에 대한 공식은 다음과 같습니다.여기서 C0은 초기 상자 제약 조건이고(
BoxConstraint이름-값 인수 참조), wj*는 관측값 j에 대해Cost및Prior에 의해 조정된 관측값 가중치입니다. 관측값 가중치에 대한 자세한 내용은 오분류 비용 행렬에 대한 사전 확률 및 관측값 가중치 조정하기 항목을 참조하십시오.Standardize를true로 지정하고Cost,Prior또는Weights이름-값 인수를 설정하면fitcsvm이 대응되는 가중 평균과 가중 표준편차를 사용하여 예측 변수를 표준화합니다. 즉,fitcsvm은 다음을 사용하여 예측 변수 j(xj)를 표준화합니다.여기서 xjk는 예측 변수 j(열)의 관측값 k(행)이며 다음이 성립됩니다.
p가 훈련 데이터에서 사용자가 예상하는 이상값 비율이고'OutlierFraction',p를 설정한다고 가정합니다.단일 클래스 학습의 경우, 소프트웨어가 훈련 데이터에 포함된 관측값의 100
p%가 음의 점수를 가지도록 편향 항을 훈련시킵니다.2-클래스 학습의 경우 소프트웨어가 로버스트 학습을 구현합니다. 다시 말해, 최적화 알고리즘이 수렴될 때 소프트웨어가 관측값의 100
p%를 제거한다는 의미입니다. 제거되는 관측값은 크기가 큰 기울기에 해당합니다.
예측 변수 데이터에 범주형 변수가 포함된 경우 소프트웨어가 일반적으로 이러한 변수에 대해 전체 가변수 인코딩을 사용합니다. 소프트웨어는 각 범주형 변수의 각 수준마다 하나의 가변수를 생성합니다.
PredictorNames속성은 원래 예측 변수 이름마다 하나의 요소를 저장합니다. 예를 들어, 세 개의 예측 변수가 있고, 그중 하나가 세 개 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면PredictorNames는 예측 변수의 원래 이름을 포함하는 문자형 벡터로 구성된 1×3 셀형 배열이 됩니다.ExpandedPredictorNames속성은 가변수를 포함하여 예측 변수마다 하나의 요소를 저장합니다. 예를 들어, 세 개의 예측 변수가 있고, 그중 하나가 세 개 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면ExpandedPredictorNames는 예측 변수 이름 및 새 가변수의 이름을 포함하는 문자형 벡터로 구성된 1×5 셀형 배열이 됩니다.마찬가지로,
Beta속성은 가변수를 포함하여 예측 변수마다 하나의 베타 계수를 저장합니다.SupportVectors속성은 가변수를 포함하여 서포트 벡터에 대한 예측 변수 값을 저장합니다. 예를 들어, m개의 서포트 벡터와 세 개의 예측 변수가 있고, 그중 하나가 세 개의 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면SupportVectors는 n×5 행렬이 됩니다.X속성은 훈련 데이터를 원래 입력된 대로 저장하고 가변수는 포함하지 않습니다. 입력값이 테이블인 경우,X는 예측 변수로 사용된 열만 포함합니다.
테이블에 지정된 예측 변수에 대해 변수 중 하나가 순서가 지정된(순서형) 범주를 포함하는 경우 소프트웨어는 이러한 변수에 대해 순서형 인코딩(Ordinal Encoding)을 사용합니다.
순서가 지정된 k개의 수준을 갖는 변수에 대해 소프트웨어는 k – 1개의 가변수를 생성합니다. j번째 가변수는 j 수준까지는 –1이 되고, j + 1에서 k까지의 수준에서는 +1이 됩니다.
ExpandedPredictorNames속성에 저장된 가변수의 이름은 값 +1을 갖는 첫 번째 수준을 나타냅니다. 소프트웨어는 수준 2, 3, ..., k의 이름을 포함하여 가변수에 대해 k – 1개의 추가 예측 변수 이름을 저장합니다.
모든 솔버는 L1 소프트 마진(Soft-Margin) 최소화를 구현합니다.
단일 클래스 학습의 경우, 소프트웨어는 다음을 만족하는 라그랑주 승수 α1,...,αn을 추정합니다.
참고 문헌
[2] Scholkopf, B., J. C. Platt, J. C. Shawe-Taylor, A. J. Smola, and R. C. Williamson. “Estimating the Support of a High-Dimensional Distribution.” Neural Comput., Vol. 13, Number 7, 2001, pp. 1443–1471.
