fitrsvm
서포트 벡터 머신 회귀 모델 피팅
구문
설명
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)
[은 사용자가 Mdl,AggregateOptimizationResults] = fitrsvm(___)OptimizeHyperparameters 이름-값 인수와 HyperparameterOptimizationOptions 이름-값 인수를 지정하는 경우 하이퍼파라미터 최적화 결과를 포함하는 AggregateOptimizationResults도 반환합니다. HyperparameterOptimizationOptions의 ConstraintType 옵션과 ConstraintBounds 옵션도 지정해야 합니다. 이 구문을 사용하면 교차 검증 손실 대신에 간소 모델 크기에 대해 최적화하고, 옵션은 동일하지만 제약 조건 범위가 다른 여러 최적화 문제 세트를 수행할 수 있습니다.
예제
입력 인수
이름-값 인수
출력 인수
제한 사항
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는 예측 변수의 원래 이름을 포함하는 문자형 벡터로 구성된 1×3 셀형 배열이 됩니다.ExpandedPredictorNames속성은 가변수를 포함하여 예측 변수마다 하나의 요소를 저장합니다. 예를 들어, 세 개의 예측 변수가 있고, 그중 하나가 세 개 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면ExpandedPredictorNames는 예측 변수 이름 및 새 가변수의 이름을 포함하는 문자형 벡터로 구성된 1×5 셀형 배열이 됩니다.마찬가지로,
Beta속성은 가변수를 포함하여 예측 변수마다 하나의 베타 계수를 저장합니다.SupportVectors속성은 가변수를 포함하여 서포트 벡터에 대한 예측 변수 값을 저장합니다. 예를 들어, m개의 서포트 벡터와 세 개의 예측 변수가 있고, 그중 하나가 세 개의 수준을 갖는 범주형 변수라고 가정해 보겠습니다. 그러면SupportVectors는 m×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) 최소화를 구현합니다.
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.
[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: Extensions to the Cascade-Correlation Architecture and Benchmarking of Feed-forward Supervised Artificial Neural Networks." University of Tasmania Department of Computer Science thesis, 1995.
