이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.
서포트 벡터 머신 회귀 모델 피팅
fitrsvm
은 저차원에서 중간 차원까지의 예측 변수 데이터 세트에 대해 서포트 벡터 머신(SVM) 회귀 모델을 훈련시키거나 교차 검증합니다. fitrsvm
은 커널 함수를 사용하여 예측 변수 데이터를 매핑하는 것을 지원합니다. 또한 SMO, ISDA 또는 목적 함수 최소화를 위한 2차 계획법을 사용하는 L1 소프트 마진 최소화를 지원합니다.
고차원 데이터 세트, 즉 많은 예측 변수를 포함하는 데이터 세트에 대해 선형 SVM 회귀 모델을 훈련시키려면 fitrlinear
를 대신 사용하십시오.
이진 분류를 위해 SVM 모델을 훈련시키려면 저차원에서 중간 차원까지의 예측 변수 데이터 세트의 경우 fitcsvm
을 참조하고 고차원 데이터 세트의 경우 fitclinear
를 참조하십시오.
은 테이블 Mdl
= fitrsvm(Tbl
,ResponseVarName
)Tbl
에 포함된 예측 변수 값과 Tbl.ResponseVarName
에 포함된 응답 변수 값을 사용하여 훈련된 전체 서포트 벡터 머신(SVM) 회귀 모델 Mdl
을 반환합니다.
는 위에 열거된 구문에 하나 이상의 이름-값 쌍의 인수로 지정되는 추가 옵션을 사용하여 SVM 회귀 모델을 반환합니다. 예를 들어, 커널 함수를 지정하거나 교차 검증된 모델을 훈련시킬 수 있습니다.Mdl
= fitrsvm(___,Name,Value
)
fitrsvm
함수는 저차원에서 중간 차원까지의 데이터 세트를 지원합니다. 고차원 데이터 세트에 대해서는 fitrlinear
를 대신 사용하십시오.
데이터 세트가 크지 않다면 항상 예측 변수를 표준화하도록 하십시오(Standardize
참조). 표준화를 수행하면 예측 변수가 측정되는 척도에 영향을 받지 않게 됩니다.
KFold
이름-값 쌍의 인수를 사용하여 교차 검증을 수행하는 것이 좋습니다. 교차 검증 결과를 통해 SVM 모델이 얼마나 잘 일반화되는지 확인할 수 있습니다.
서포트 벡터의 희소성은 SVM 모델에 있어서는 이상적인 속성입니다. 서포트 벡터의 개수를 줄이려면 BoxConstraint
이름-값 쌍의 인수를 큰 값으로 설정하십시오. 단, 이 동작을 수행하면 훈련 시간이 증가합니다.
최적의 훈련 시간을 위해 CacheSize
를 컴퓨터의 메모리 제한이 허용하는 한 최대한 높게 설정하십시오.
훈련 세트에서 서포트 벡터의 개수가 관측값보다 훨씬 적을 거라 예상되는 경우, 이름-값 쌍의 인수 'ShrinkagePeriod'
를 사용하여 활성 세트를 축소함으로써 수렴되는 속도를 상당히 높일 수 있습니다. 'ShrinkagePeriod',1000
을 사용하는 것이 좋습니다.
회귀선에서 멀리 떨어진 중복된 관측값은 수렴에 영향을 미치지 않습니다. 그러나, 회귀선 가까이에 있는 중복된 관측값은 몇 개만 있더라도 수렴되는 속도가 상당히 느려질 수 있습니다. 다음과 같은 경우 'RemoveDuplicates',true
를 지정하여 수렴되는 속도를 높이십시오.
데이터 세트에 중복된 관측값이 많이 있는 경우.
몇 개의 중복된 관측값이 회귀선 가까이에 있을 수 있다고 의심되는 경우.
단, 훈련 중에 원래 데이터 세트를 유지하기 위해, fitrsvm
함수는 원래 데이터 세트와 중복된 관측값을 제거한 데이터 세트를 일시적으로 각각 별도로 저장해야 합니다. 따라서, 몇몇 중복된 관측값을 포함하는 데이터 세트에 대해 true
를 지정할 경우 fitrsvm
은 원래 데이터 메모리의 두 배에 가까운 메모리를 사용합니다.
모델을 훈련시킨 후에는 새 데이터에 대한 응답 변수를 예측하는 C/C++ 코드를 생성할 수 있습니다. C/C++ 코드를 생성하려면 MATLAB Coder™가 필요합니다. 자세한 내용은 Introduction to Code Generation 항목을 참조하십시오.
선형 SVM 회귀 문제와 비선형 SVM 회귀 문제의 수학적 정식화, 그리고 솔버 알고리즘에 대해 알아보려면 서포트 벡터 머신 회귀 이해하기 항목을 참조하십시오.
NaN
, <undefined>
, 빈 문자형 벡터(''
), 빈 string형(""
), <missing>
값은 결측 데이터 값을 나타냅니다. fitrsvm
은 결측 응답 변수에 대응되는 데이터의 전체 행을 제거합니다. 가중치를 정규화할 때, fitrsvm
함수는 최소 한 개의 결측 예측 변수를 갖는 관측값에 대응되는 가중치를 모두 무시합니다. 따라서, 관측값 상자 제약 조건은 BoxConstraint
와 일치하지 않을 수 있습니다.
fitrsvm
함수는 가중치가 0인 관측값을 제거합니다.
'Standardize',true
와 'Weights'
를 설정하면 fitrsvm
함수는 대응되는 가중 평균과 가중 표준편차를 사용하여 예측 변수를 표준화합니다. 즉, fitrsvm
은 다음을 사용하여 예측 변수 j(xj)를 표준화합니다.
xjk는 예측 변수 j(열)의 관측값 k(행)입니다.
예측 변수 데이터에 범주형 변수가 포함된 경우 소프트웨어가 일반적으로 이러한 변수에 대해 전체 가변수 인코딩을 사용합니다. 소프트웨어는 각 범주형 변수의 각 수준마다 하나의 가변수를 생성합니다.
PredictorNames
속성은 원래 예측 변수 이름마다 하나의 요소를 저장합니다. 예를 들어, 세 개의 예측 변수가 있고, 그중 하나가 세 개 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면 PredictorNames
는 예측 변수의 원래 이름을 포함하는 문자형 벡터로 구성된 1x3 셀형 배열이 됩니다.
ExpandedPredictorNames
속성은 가변수를 포함하여 예측 변수마다 하나의 요소를 저장합니다. 예를 들어, 세 개의 예측 변수가 있고, 그중 하나가 세 개 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면 ExpandedPredictorNames
는 예측 변수 이름 및 새 가변수의 이름을 포함하는 문자형 벡터로 구성된 1x5 셀형 배열이 됩니다.
마찬가지로, Beta
속성은 가변수를 포함하여 예측 변수마다 하나의 베타 계수를 저장합니다.
SupportVectors
속성은 가변수를 포함하여 서포트 벡터에 대한 예측 변수 값을 저장합니다. 예를 들어, m개의 서포트 벡터와 세 개의 예측 변수가 있고, 그중 하나가 세 개의 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면 SupportVectors
는 mx5 행렬이 됩니다.
X
속성은 훈련 데이터를 원래 입력된 대로 저장합니다. 가변수는 포함하지 않습니다. 입력값이 테이블인 경우, X
는 예측 변수로 사용된 열만 포함합니다.
테이블에 지정된 예측 변수에 대해 변수 중 하나가 순서가 지정된(순서형) 범주를 포함하는 경우 소프트웨어는 이러한 변수에 대해 순서형 인코딩(Ordinal Encoding)을 사용합니다.
순서가 지정된 k개의 수준을 갖는 변수에 대해 k – 1개의 가변수를 생성합니다. j번째 가변수는 수준이 j일 때까지는 -1이 되고, 수준이 j + 1과 k 사이인 경우 +1이 됩니다.
ExpandedPredictorNames
속성에 저장된 가변수의 이름은 값 +1을 갖는 첫 번째 수준을 나타냅니다. 소프트웨어는 수준 2, 3, ..., k의 이름을 포함하여 가변수에 대해 k –
1개의 추가 예측 변수 이름을 저장합니다.
모든 솔버는 L1 소프트 마진(Soft-Margin) 최소화를 구현합니다.
p
는 훈련 데이터에서 사용자가 예상하는 이상값 비율이라고 하겠습니다. 'OutlierFraction',p
를 설정하면 로버스트 학습을 구현합니다. 다시 말해, 최적화 알고리즘이 수렴될 때 소프트웨어가 관측값의 100p
%를 제거한다는 의미입니다. 제거되는 관측값은 크기가 큰 기울기에 해당합니다.
[1] Clark, D., Z. Schreter, A. Adams. A Quantitative Comparison of Dystal and Backpropagation, submitted to the Australian Conference on Neural Networks, 1996.
[2] Fan, R.-E., P.-H. Chen, and C.-J. Lin. “Working set selection using second order information for training support vector machines.” Journal of Machine Learning Research, Vol 6, 2005, pp. 1889–1918.
[3] Kecman V., T. -M. Huang, and M. Vogt. “Iterative Single Data Algorithm for Training Kernel Machines from Huge Data Sets: Theory and Performance.” In Support Vector Machines: Theory and Applications. Edited by Lipo Wang, 255–274. Berlin: Springer-Verlag, 2005.
[4] Lichman, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.
[5] Nash, W.J., T. L. Sellers, S. R. Talbot, A. J. Cawthorn, and W. B. Ford. The Population Biology of Abalone (Haliotis species) in Tasmania. I. Blacklip Abalone (H. rubra) from the North Coast and Islands of Bass Strait, Sea Fisheries Division, Technical Report No. 48, 1994.
[6] Waugh, S. Extending and benchmarking Cascade-Correlation, Ph.D. thesis, Computer Science Department, University of Tasmania, 1995.