이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
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을 추정합니다.
참고 문헌
[1] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, Second Edition. NY: Springer, 2008.
[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.
[3] Christianini, N., and J. C. Shawe-Taylor. An Introduction to Support Vector Machines and Other Kernel-Based Learning Methods. Cambridge, UK: Cambridge University Press, 2000.
[4] Scholkopf, B., and A. Smola. Learning with Kernels: Support Vector Machines, Regularization, Optimization and Beyond, Adaptive Computation and Machine Learning. Cambridge, MA: The MIT Press, 2002.