主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

fitcsvm

단일클래스및이진분류를위한서포트벡터머신분(SVM)류기훈련

설명

fitcsvm은저차원이나중간차원의예측변수데이터세트에대한단일클래스및2 -클래스(이진)분류에대해서포트벡터머신(SVM)모델을훈련시키거나교차검증합니다。fitcsvm은커널함수를사용하여예측변수데이터를매핑하는것을지원하고,순차적최소규모최적화(SMO)반복단일데이터알고리즘(ISDA)도지원하며,목적함수최소화를위한차2계획법을사용하는L1소프트마진(软边缘)최소화를지원합니다。

고차원데이터세트,즉많은예측변수를포함하는데이터세트에대한이진분류를수행할선형SVM모델을훈련시키려면fitclinear를대신사용하십시오。

이진 支持向量机모델을 결합하는 다중클래스 학습에 대해서는 오류 수정 출력 코드(经济合作委员会)를 사용하십시오. 자세한 내용은菲切克를참조하십시오。

SVM회귀모델을훈련시키려면저차원및중간차원의예측변수데이터세트의경우菲特斯姆을참조하고고차원데이터세트의경우fitrlinear를참조하십시오。

Mdl= fitcsvm (资源描述ResponseVarName은테이블资源描述에 포함된 표본 데이터를 사용하여 훈련된서포트벡터머신분(SVM)류기Mdl을반환합니다。ResponseVarName资源描述에서단일클래스또는2 -클래스분류에대한클래스레이블을포함하는변수의이름입니다。

Mdl= fitcsvm (资源描述公式는테이블资源描述에 포함된 표본 데이터를 사용하여 훈련된 支持向量机분류기를 반환합니다.公式Mdl을피팅하는데사용되는资源描述의응답변수와예측변수의부분집합에대한설명모델입니다。

Mdl= fitcsvm (资源描述y는테이블资源描述에포함된예측변수와벡터y의클래스레이블을사용하여훈련된SVM분류기를반환합니다。

예제

Mdl= fitcsvm (Xy는단일클래스분류또는2 -클래스분류에대해행렬X에포함된예측변수와벡터y의클래스레이블을사용하여훈련된SVM분류기를반환합니다。

예제

Mdl= fitcsvm (___名称,价值는위에열거된구문에나와있는입력인수와함께하나이상의이름——값쌍의인수를사용하여옵션을지정합니다。예를들어,교차검증유형,오분류비용그리고점수변환함수유형을지정할수있습니다。

예제

모두축소

피셔(费舍尔)의붓꽃데이터세트를불러옵니다。꽃받침길이와너비,그리고관측된모든부채붓꽃(Setosa虹膜)을제거합니다。

负载鱼腥草第1 = ~ strcmp(物种,“setosa”); X=meas(inds,3:4);y=物种(IND);

처리된데이터세트를사용하여SVM분류기를훈련시킵니다。

SVMModel = fitcsvm(X,Y)
SVMModel = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{“癣”“virginica”}ScoreTransform:“没有一个”NumObservations: 100α:[24 x1双]偏见:-14.4149 KernelParameters: [1 x1 struct] BoxConstraints: x1双[100]ConvergenceInfo: [1 x1 struct] IsSupportVector: x1逻辑[100]解算器:SMO的属性,方法金宝app

SVMModel은훈련된ClassificationSVM분류기입니다。SVMModel의속성을표시합니다。예를들어,클래스순서를확인하려면점표기법을사용하십시오。

classOrder = SVMModel。类名
classOrder =2 x1细胞{“癣”}{' virginica '}

첫번째클래스(“花色”)는음성클래스이고,두번째클래스(“virginica”)는양성클래스입니다。“类名”이름——값쌍의인수를사용하여훈련중에클래스순서를변경할수있습니다。

데이터의산점도도식을플로팅하고서포트벡터를원으로표시합니다。

sv=SVMModel.Su金宝apppportVectors;图gscatter(X(:,1),X(:,2),y)保持图(sv(:,1),sv(:,2),“高”“MarkerSize”10)传说(“花色”“virginica”“金宝app支持向量”)持有

图中包含一个坐标轴。轴线包含3个线型对象。这些对象代表花斑,维珍,支持向量。金宝app

서포트벡터는추정된클래스경계또는그너머에있는관측값입니다。

“BoxConstraint”이름——값쌍의인수를사용하여훈련중에상자제약조건을설정하여경계(즉,서포트벡터개수)를조정할수있습니다。

电离层데이터세트를불러옵니다。

负载电离层rng (1);%的再现性

방사기저커널을사용하여SVM분류기를훈련시킵니다。소프트웨어가커널함수의스케일값을구하도록합니다。예측변수를표준화합니다。

SVMModel = fitcsvm (X, Y,“标准化”,真的,“内核函数”“RBF”...“KernelScale”'汽车');

SVMModel은훈련된ClassificationSVM분류기입니다。

SVM분류기를교차검증합니다。기본적으로,소프트웨어는10겹교차검증을사용합니다。

CVSVMModel = crossval (SVMModel);

CVSVMModelClassificationededModel.교차검증된분류기입니다。

표본외오분류율을추정합니다。

classLoss = kfoldLoss (CVSVMModel)
类别损失=0.0484

일반화율은약5%입니다。

모든붓꽃을동일한클래스에할당하여피셔(费舍尔)의붓꽃데이터세트를수정합니다。수정된데이터세트에서이상값을감지하고관측값중이상값비율이예상대로인지확인합니다。

피셔(费舍尔)의붓꽃데이터세트를불러옵니다。꽃잎길이와너비를제거합니다。모든붓꽃을같은클래스에서온것으로처리합니다。

负载鱼腥草X =量(:,1:2);y = 1(大小(X, 1), 1);

수정된데이터세트를사용하여SVM분류기를훈련시킵니다。5%관측값의가이상값이라고가정합니다。예측변수를표준화합니다。

rng (1);SVMModel = fitcsvm (X, y,“KernelScale”'汽车'“标准化”,真的,...“离群分数”,0.05);

SVMModel은훈련된ClassificationSVM분류기입니다。기본적으로,소프트웨어는단일클래스학습에가우스커널을사용합니다。

관측값과결정경계를플로팅합니다。서포트벡터와잠재적인이상값에플래그를지정합니다。

svInd = SVMModel.Is金宝appSupportVector;h = 0.02;%网格网格步长(X1, X2) = meshgrid (min (X (: 1)): h:马克斯(X (: 1))...min (X (:, 2)): h:马克斯(X (:, 2)));[~,分数]=预测(SVMModel (X1 (:), X2 (:)));scoreGrid =重塑(得分,大小(X1, 1),大小(X2, 2));图绘制(X (: 1), (:, 2),“k.”)持有情节(X (svInd, 1), X (svInd, 2),“罗”“MarkerSize”, 10)轮廓(X1, X2, scoreGrid) colorbar;标题(“{\bf虹膜离群点的一类支持向量机检测}”)包含('萼片长度(cm)') ylabel (萼片宽(cm)的)传说(“观察”“金宝app支持向量”)持有

图中包含一个坐标轴。标题为{\bf虹膜离群检测的一类支持向量机}的坐标轴包含3个类型为线、轮廓的对象。这些对象表示观察,支持向量。金宝app

이상값을나머지데이터와분리하는경계는등고선값이0.인위치에서나타납니다。

교차검증된데이터에서음의점수를갖는관측값의비율5%이에가까운지확인합니다。

CVSVMModel = crossval (SVMModel);[~, scorePred] = kfoldPredict (CVSVMModel);outlierRate =意味着(scorePred < 0)
outlierRate = 0.0467

鱼腥草데이터세트에대한산점도플롯을생성합니다。플롯내그리드좌표를데이터세트분포의새관측값으로처리하고데이터세트의좌표값을세클래스중하나에할당하여클래스경계를찾습니다。

피셔(费舍尔)의붓꽃데이터세트를불러옵니다。꽃잎길이와너비를예측변수로사용합니다。

负载鱼腥草X =量(:,3:4);Y =物种;

데이터에대한산점도플롯을검토합니다。

图gscatter (X (: 1), (:, 2), Y);甘氨胆酸h =;lims = [h。XLim h.YLim];%提取x和y轴的极限标题(“{\bf虹膜测量散点图}”);包含('花瓣长度(cm)');ylabel (“花瓣宽度(cm)”);传奇(“位置”“西北”);

图中包含一个坐标轴。标题为{\bf虹膜测量散点图}的轴包含3个线型对象。这些物品代表着维珍卡。

데이터에는 세 개의 클래스가 있는데, 이 중 한 클래스는 나머지 두 클래스로부터 선형 분리될 수 있습니다.

각클래스에대해다음작업을수행합니다。

  1. 관측값이그클래스의멤버인지여부를나타내는논리형벡터(indx)를생성합니다。

  2. 예측변수데이터와indx를사용하여SVM분류기를훈련시킵니다。

  3. 셀형배열의셀로분류기를저장합니다。

클래스순서를정의합니다。

SVMModels=单元(3,1);类=唯一(Y);rng(1);%的再现性j = 1:numel(classes) indx = strcmp(Y,classes(j))); / /索引为每个分类器创建二进制类SVMModels {j} = fitcsvm (X, indx“类名”(虚假的真实),“标准化”,真的,...“内核函数”'RBF'“BoxConstraint”1);结尾

SVMModels는각셀이ClassificationSVM분류기를포함하는3×1셀형배열입니다。각셀에대해양성클래스는각각setosa,杂色的,virginica입니다。

플롯내에조밀한그리드를정의하고,좌표를훈련데이터의분포에서새관측값으로처리합니다。각분류기를사용하여새관측값의점수를추정합니다。

d = 0.02;[x1Grid,x2Grid] = meshgrid(分钟(X(:,1)):d:最大(X(:,1)),...最小值(X(:,2)):d:max(X(:,2));xGrid=[x1Grid(:),x2Grid(:)];N=大小(xGrid,1);分数=零(N,numel(类));j=1:numel(classes)[~,score]=predict(SVMModels{j},xGrid);分数(:,j)=分数(:,2);%第二列包含正面类得分结尾

分数의각행에는3개의점수가있습니다。최대점수를갖는요소의인덱스는새클래스관측값이속할가능성이가장높은클래스의인덱스입니다。

각각의새관측값을최대점수를내는분류기와연결합니다。

[~, maxScore] = max(分数,[],2);

대응되는새관측값이속하는클래스를기준으로플롯의영역을색으로구분합니다。

图h(1:3) = gscatter(xGrid(:,1),xGrid(:,2),maxScore,...[0.1 0.5 0.5;0.5 0.1 0.5;0.5 0.5 0.1]);持有h(4:6)=gscatter(X(:,1),X(:,2),Y);头衔('{\bf虹膜分类区域}');包含('花瓣长度(cm)');ylabel (“花瓣宽度(cm)”);传奇(h, {“setosa地区”“杂色的地区”“virginica地区”...“观察setosa”的观察到的多色的“观察virginica”},...“位置”“西北”);轴持有

图中包含一个坐标轴。标题为{\bf Iris Classification Regions}的轴包含6个线型对象。这些物体分别代表刚毛区、花色区、刚毛区、观测到的刚毛区、观测到的花色区、观测到的刚毛区。

fitcsvm을사용하여하이퍼파라미터를자동으로최적화합니다。

电离层데이터세트를불러옵니다。

负载电离层

자동하이퍼파라미터최적화를사용하여5겹교차검증손실을최소화하는하이퍼파라미터를구합니다。재현이가능하도록난수시드값을설정하고“expected-improvement-plus”획득함수를사용합니다。

rng默认的Mdl=fitcsvm(X,Y,“OptimizeHyperparameters”'汽车'...“HyperparameterOptimizationOptions”结构('AcquisitionFunctionName'...“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| | |运行时(观察)| (estim) | | ||=====================================================================================================| | 最好1 | | 0.20513 | 16.36 | 0.20513 | 0.20513 | 64.836 | 0.0015729 | | 2 |接受| 0.35897 | 0.11688 | 0.20513 | 0.21471 | 0.036335 | 5.5755 | | 3 |最好| 0.13105 | 6.4256 | 0.13105 | 0.14133 | 0.0022147 | 0.0023957 | | 4 | | 0.35897接受| 0.11438 | 0.13105 | 0.13109 | 5.1259 | 98.62 | | 5 |接受| 0.13675 | 13.117 | 0.13105 | 0.13111 | 0.0011599 | 0.0010098 | | 6 |接受| 0.13675 | 2.8275 | 0.13105 | 0.13119 | 0.0010151 | 0.0059137 | | | 7日接受| 0.1339 | 8.0601 | 0.13105 | 0.13127 | 0.0010281 | 0.0027003 | | |接受8 | 0.13675 | 13.277 | 0.13105 | 0.13232 | 0.016269 |0.0024597 | | | 9日接受| 0.13105 | 10.552 | 0.13105 | 0.13137 | 0.0021526 | 0.0025081 | | 10最好| | 0.12821 | 14.166 | 0.12821 | 0.12841 | 0.0086928 | 0.0010304 | | | 11日接受| 0.12821 | 14.547 | 0.12821 | 0.12828 | 0.010039 | 0.0010077 | | | 12日接受| 0.13675 | 14.233 | 0.12821 | 0.13162 | 0.0071238 | 0.0010245 | | | 13日接受| 0.1339 |13.196 | 0.12821 | 0.13179 | 0.0050166 | 0.0016385 | | 14最好| | 0.11966 | 14.624 | 0.11966 | 0.12919 | 0.013746 | 0.0010181 | | |接受15 | 0.13105 | 15.437 | 0.11966 | 0.1294 | 0.025222 | 0.001012 | | | 16日接受| 0.13105 | 15.316 | 0.11966 | 0.12958 | 0.024019 | 0.001013 | | | 17日接受| 0.35897 | 0.16209 | 0.11966 | 0.12962 | 0.0010245 |18 994.95 | | |接受| 0.13675 | 14.017 | 0.11966 | 0.12925 | 990.28 | 0.36736 | | | 19日接受| 0.18234 | 16.694 | 0.11966 | 0.12917 | 949.33 | 0.082849 | | |接受20 | 0.1339 | 6.0125 | 0.11966 | 0.12914 | 979.17 | 1.3107  | |=====================================================================================================| | Iter | Eval |目的客观| | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21 |接受| 0.14245 | 15.34 | 0.11966 | 0.13062 | 0.024598 | 0.0010041 | | | 22日接受| 0.13675 | 11.276 |0.11966 | 0.13058 | 907 | 0.70254 | | | 23日接受| 0.35897 | 0.097641 | 0.11966 | 0.13062 | 999.82 | 995.02 | | | 24日接受| 0.15385 | 0.090972 | 0.11966 | 0.13042 | 0.001002 | 0.30762 | | | 25日接受| 0.12251 | 0.11237 | 0.11966 | 0.12275 | 0.0010105 | 0.056734 | | | 26日接受| 0.1339 | 0.19372 | 0.11966 | 0.12251 | 0.021279 | 0.054708 | | 27|接受| 0.12821 | 0.10274 | 0.11966 | 0.12517 | 0.0010127 | 0.064566 | | | 28日接受| 0.12821 | 0.12003 | 0.11966 | 0.12557 | 0.0010014 | 0.036667 | | | 29日接受| 0.1339 | 0.10127 | 0.11966 | 0.12743 | 0.0010509 | 0.078319 | | | 30日接受| 0.12251 | 0.1367 | 0.11966 | 0.12706 | 0.0030057 | 0.028009 |

图中包含一个坐标轴。标题为“最小目标vs.函数计算数”的轴包含2个类型为line的对象。这些对象代表最小观测目标、最小估计目标。

图中包含一个坐标轴。与标题目标函数模型的轴包含型线,面,轮廓的5个对象。这些对象代表观测点,平均型,接下来点,最低模型是可行的。

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:278.6746秒总目标函数计算时间:236.8276最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 0.013746 0.0010181观测目标函数值= 0.11966估计目标函数值= 0.13091函数计算时间= 14.6241最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 0.0010105 0.056734估计的目标函数值= 0.12706估计的函数评价时间= 0.10367
Mdl = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”NumObservations: 351 HyperparameterOptimizationResults: [1 x1 BayesianOptimization]α:[117 x1双]偏见:-2.6521 KernelParameters: [1 x1 struct] BoxConstraints: x1双[351]ConvergenceInfo: [1 x1 struct] IsSupportVector:金宝app[351x1 logical] Solver: 'SMO'属性,方法

입력 인수

모두축소

모델을훈련시키는데사용되는표본데이터로,테이블로지정됩니다。资源描述의각행은하나의관측값에대응되고,각열은하나의예측변수에대응됩니다。선택적으로,资源描述은응답변수에대해하나의추가열을포함할수있습니다。문자형벡터로구성된셀형배열이외의셀형배열과다중열변수는허용되지않습니다。

  • 资源描述이응답변수를포함하며资源描述의나머지모든변수를예측변수로사용하려는경우ResponseVarName을사용하여응답변수를지정하십시오。

  • 资源描述이응답변수를포함하며资源描述의나머지변수중일부만예측변수로사용하려는경우公式를 사용하여 공식을 지정하십시오.

  • 资源描述이응답변수를포함하지않는경우y를사용하여응답변수를지정하십시오。응답변수의길이와资源描述의행개수는동일해야합니다。

데이터형:表格

응답변수이름으로,资源描述의변수이름으로지정됩니다。

ResponseVarName은문자형벡터나字符串형스칼라로지정해야합니다。예를들어,응답변수y资源描述。y로저장된경우이를“Y”로 지정하십시오. 이렇게 하지 않으면 모델을 훈련시킬 때y를포함한资源描述의 모든 열이 예측 변수로 처리됩니다.

응답변수는直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열이어야합니다。y가문자형배열인경우,응답변수의각요소는배열의각행에대응되어야합니다。

类名이름——값인수를사용하여클래스의순서를지정하는것이좋습니다。

데이터형:字符|字符串

응답변수,그리고예측변수의부분집합에대한설명모델로,“Y ~ x1 + x2 + x3”형식의문자형벡터나字符串형스칼라로지정됩니다。이형식에서y는응답변수를나타내고,x1x2x3은예측변수를나타냅니다。

资源描述의일부변수를모델훈련에사용할예측변수로지정하려면식을사용하십시오。사용자가식을지정하면资源描述의변수중해당公式에 표시되지 않은 변수는 사용되지 않습니다.

식에포함되는변수이름은资源描述에 포함된 변수 이름(Tbl.Properties.VariableNames)이면서동시에유효한MATLAB®식별자여야합니다。isvarname함수를 사용하여资源描述에포함된변수이름을확인할수있습니다。변수이름이유효하지않으면matlab.lang.makeValidName함수를사용하여변수이름을변환할수있습니다。

데이터형:字符|字符串

SVM모델이훈련되는클래스레이블로,直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열로지정됩니다。

  • y는최대두개의서로다른클래스를포함해야합니다。다중클래스학습에대해서는菲切克를참조하십시오。

  • y가문자형배열인경우,클래스레이블의각요소는배열의각행에대응되어야합니다。

  • y의길이와资源描述또는X의행개수는동일해야합니다。

  • 类名이름 - 값쌍의인수를사용하여클래스순서를지정하는것이좋습니다。

데이터형:分类|字符|字符串|逻辑|||单间牢房

SVM분류기가훈련되는예측변수데이터로,숫자형값으로구성된행렬로지정됩니다。

X의각행은하나의관측값(발생건또는예라고도함)에대응되고,각열은하나의예측변수(특징이라고도함)에대응됩니다。

y의길이와X의행개수는동일해야합니다。

X에나오는순서로예측변수의이름을지정하려면'predictornames'이름 - 값쌍의인수를사용하십시오。

데이터형:|

이름——값쌍의인수

선택적으로名称,价值인수가쉼표로구분되어지정됩니다。여기서的名字은 인수 이름이고价值는대응값입니다。的名字은따옴표안에표시해야합니다。Name1, Value1,…,的家과같이여러개의이름——값쌍의인수를어떤순서로든지정할수있습니다。

예:fitcsvm(X,Y,'KFold',10,'Cost',[02;10],'ScoreTransform','sign')은10겹교차검증을수행하고,거짓음성에비해거짓양성에대한벌점을두배로적용하고,부호함수를사용하여점수를변환합니다。
支持向量机옵션

모두축소

상자제약조건으로,“BoxConstraint”와함께양의스칼라가쉼표로구분되어지정됩니다。

단일 클래스 학습의 경우, 상자 제약 조건은 항상1로 설정됩니다.

BoxConstraint成本之前标准化重量의관계와알고리즘동작에대한자세한내용은알고리즘항목을참조하십시오。

예:'BoxConstraint',100

데이터형:|

그람행렬의 요소를 계산하는 데 사용되는 커널 함수로,“内核函数”과함께커널함수이름이쉼표로구분되어지정됩니다。G(Xj, xK.)가그람행렬의요소(j, k)라고가정합니다。여기서xj와XK.X의관측값j k를와나타내는p차원벡터입니다。다음표에는지원되는커널함수이름과해당함수형식이나와있습니다。

커널함수이름 설명 공식
“高斯”또는'RBF' 가우스커널또는방사기저함수(RBF)커널로,단일클래스학습에대한디폴트값임

G X j X K. = 经验 X j X K. 2

“线性” 선형커널로,2 -클래스학습에대한디폴트값임

G X j X K. = X j ' X K.

多项式的 다항식커널。'PolynomialOrder',问:를사용하여차수가问:인 다항식 커널을 지정합니다.

G X j X K. = 1 + X j ' X K. 问:

'KernelFunction', '仁'을 설정하여 자신만의 고유한 커널 함수(예:核心)를설정할수있습니다。核心의 형식은 다음과 같아야 합니다.

作用G =内核(U, V)
여기서

  • 는m×p행렬입니다。열은예측변수에대응되고행은관측값에대응됩니다。

  • V.는n×p행렬입니다。열은예측변수에대응되고행은관측값에대응됩니다。

  • GV.의행으로구성된m×n그람행렬입니다。

kernel.m은MATLAB경로에있어야합니다。

커널함수에일반적인이름을사용하지않는것이좋습니다。예를들어,시그모이드커널함수는“乙状结肠”대신“糠疹样”로명명하십시오。

예:“KernelFunction”、“高斯”

데이터형:字符|字符串

커널스케일모수로,“KernelScale”과함께'汽车'또는양의스칼라가쉼표로구분되어지정됩니다。소프트웨어는예측변수행렬X의 모든 요소를核尺度의 값으로 나눕니다. 그런 다음, 적합한 커널 노름(标准)을 적용하여 그람 행렬을 계산합니다.

  • '汽车'를지정하면소프트웨어가발견적절차(启发式程序)를사용하여적합한스케일링인자를선택합니다。이발견적절차는부표본추출을사용하므로,추정값이호출마다다를수있습니다。따라서동일한결과를재현하기위해분류기를훈련시키기전에rng를사용하여난수시드값을설정합니다。

  • 核尺度과자신만의고유한커널함수(예:'KernelFunction', '仁')를지정하는경우,오류가발생합니다。核心내에서 스케일링을 적용해야 합니다.

예:“KernelScale”、“汽车”

데이터형:||字符|字符串

다항식커널함수차수로,“PolynomialOrder”와함께양의정수가쉼표로구분되어지정됩니다。

“PolynomialOrder”를설정했는데KernelFunction多项式的이아닌경우,오류가발생합니다。

예:“PolynomialOrder”,2

데이터형:|

커널 오프셋 파라미터로,“KernelOffset”과함께음이아닌스칼라가쉼표로구분되어지정됩니다。

核偏移이 그람 행렬의 각 요소에 추가됩니다.

디폴트값은다음과같습니다。

  • SMO솔버가인경우(즉“规划求解”、“SMO的를설정하는경우)0.

  • 솔버ISDA인가경우(즉“规划求解”、“ISDA的를설정하는경우)0.1

예:“KernelOffset”,0

데이터형:|

예측 변수 데이터를 표준화하는 플래그로,“标准化”와함께真正的1) 또는(0)이쉼표로구분되어지정됩니다。

“标准化”,真的를설정할경우다음이수행됩니다。

  • 각예측변수(X또는资源描述)는 대응되는 가중 열 평균과 표준편차를 기준으로 정규화됩니다. 가중 표준화에 대한 자세한 내용은알고리즘항목을 참조하십시오. MATLAB은 범주형 예측 변수에 대해 생성된 가변수 열에 포함된 데이터를 표준화하지 않습니다.

  • 소프트웨어는 표준화된 예측 변수를 사용하여 분류기를 훈련시키지만, 표준화되지 않은 예측 변수를 분류기 속성X에행렬또는테이블로저장합니다。

예:“标准化”,真的

데이터형:逻辑

최적화루틴으로,“规划求解”와함께다음표에나와있는값이쉼표로구분되어지정됩니다。

설명
'ISDA' 반복단일데이터알고리즘([30]항목참조)
“L1QP” quadprog(优化工具箱)를사용하여2차계획법을통해L1소프트마진최소화를구현합니다。이옵션을사용하려면优化工具箱™라이선스가필요합니다。자세한내용은2차계획법정의(优化工具箱)항목을참조하십시오。
'SMO' 순차적최소규모최적화([17]항목참조)

디폴트값은2 -클래스학습에대해“离群分数”을양수값으로설정하는경우'ISDA'이고,그렇지않은경우'SMO'입니다。

예:“规划求解”、“ISDA的

알파계수의초기추정값으로,“阿尔法”와함께음이아닌값으로구성된숫자형벡터가쉼표로구분되어지정됩니다。α의길이는X의행개수와같아야합니다。

  • “阿尔法”의각요소는X의관측값에대응됩니다。

  • “阿尔法”을포함할수없습니다。

  • “阿尔法”와교차검증이름——값쌍의인수(“CrossVal”“CVPartition”“坚持”“KFold”또는'忽略') 중 하나를 지정하는 경우, 소프트웨어가 오류를 반환합니다.

y가누락값을포함하는경우,누락값에대응되는yX“阿尔法”의 모든 행을 제거하십시오. 즉, 다음을 입력합니다.

IDX =〜isundefined(分类(Y));Y = Y(IDX,:);X = X(IDX,:);阿尔法=α(IDX);
그런다음,yXα를 각각 응답 변수, 예측 변수, 초기 알파 추정값으로 전달합니다.

디폴트값은다음과같습니다。

  • 단일클래스학습의경우0.5 * 1(大小(X, 1), 1)

  • 2-클래스 학습의 경우0(大小(X, 1), 1)

예:“阿尔法”,0.1 *(大小(X, 1), 1)

데이터형:|

캐시크기로,“缓存大小”와함께“最大”또는양의스칼라가쉼표로구분되어지정됩니다。

CacheSize“最大”인 경우, 소프트웨어는 전체 n×n그람행렬을 유지하는 데 충분한 메모리를 예약합니다.

CacheSize가양의스칼라인경우,소프트웨어는모델훈련에사용하기위해CacheSize(단위:메가바이트)크기의메모리를예약합니다。

예:'CacheSize的', '最大'

데이터형:||字符|字符串

알파계수자르기여부를표시하는플래그로,“克利帕尔帕斯”와함께真正的가쉼표로구분되어지정됩니다。

관측값j에대한알파계수가αj이고 관측값 J의 상자 제약 조건이 Cj인 경우, j=1,…,n입니다. 여기서 N은 훈련 표본 크기입니다.

설명
真正的 각반복마다αj0가에가깝거나CjMATLAB이에가까운경우,αj를각각0또는Cj로설정합니다。
MATLAB이 최적화 과정 중에 알파 계수를 변경하지 않습니다.

MATLAB은훈련된SVM모델객체의α속성에α의최종값을저장합니다。

ClipAlphas는SMO및ISDA수렴에영향을미칠수있습니다。

예:“ClipAlphas”,假的

데이터형:逻辑

단일클래스학습에대한ν모수로,“怒”와함께양의스칼라가쉼표로구분되어지정됩니다。怒族0.보다크고최대1이어야합니다。

怒族를설정하여대부분의훈련예가양성클래스에있도록하는것과점수함수의가중치를최소화하는것간의장단점을절충합니다。

예:“怒”,0.25

데이터형:|

최적화진단메시지출력간반복횟수로,“NumPrint”와함께음이아닌정수가쉼표로구분되어지정됩니다。

“详细”,1'NumPrint',numprint를지정하는경우,소프트웨어가명령창에서매numprint회의반복마다SMO및ISDA의모든최적화진단메시지를표시합니다。

예:'NumPrint',500

데이터형:|

훈련데이터의이상값예상비율로,“离群分数”과함께구간(0,1)내숫자형스칼라가쉼표로구분되어지정됩니다。

outlierfraction0을보다큰값으로하여OutlierFraction, OutlierFraction을설정했다고가정해보겠습니다。

  • 2-클래스학습의경우,로버스트학습을구현합니다。다시말해,최적화알고리즘이수렴될때소프트웨어가관측값의100 *outlierfraction%를제거한다는의미입니다。제거되는관측값은크기가큰기울기에해당합니다。

  • 단일클래스학습의경우,훈련세트에서관측값의outlierfraction이음의점수를갖도록하는적합한편향항을찾게됩니다。

예:“OutlierFraction”,0.01

데이터형:|

훈련데이터에서중복된관측값을단일관측값으로교체하는플래그로,“RemoveDuplicates”와함께真正的가쉼표로구분되어지정됩니다。

RemoveDuplicates真正的인경우,fitcsvm함수는훈련데이터에서중복된관측값을동일한값을가지는단일관측값으로바꿉니다。단일관측값의가중치는제거된중복항목의가중치를모두더한합과일치합니다(重量참조)。

데이터세트에중복된관측값이많이포함된경우“RemoveDuplicates”,真的를지정하면수렴시간을상당히단축시킬수있습니다。

데이터형:逻辑

세부정보표시수준으로,“详细”와함께0.1또는2가쉼표로구분되어지정됩니다。冗长的의값은소프트웨어가명령창에표시하는최적화정보의양을제어하고이정보를Mdl.ConvergenceInfo.History에구조체로저장합니다。

다음표에는사용가능한세부정보표시수준옵션이요약되어있습니다。

설명
0. 소프트웨어가수렴정보를표시하거나저장하지않습니다。
1 소프트웨어가매numprint회의 반복마다 진단 메시지를 표시하고 수렴 조건을 저장합니다. 여기서numprint는 이름-값 쌍 인수“NumPrint”의값입니다。
2 소프트웨어가매반복마다진단메시지를표시하고수렴조건을저장합니다。

예:“详细”,1

데이터형:|

기타분류옵션

모두축소

범주형예측변수목록으로,다음표에있는값중하나로지정됩니다。

설명
양의정수로구성된벡터

벡터의각요소는범주형변수를포함하는예측변수데이터의열에대응되는인덱스값입니다。과인덱스값은1P.사이입니다。여기서P.는 모델을 훈련시킬 때 사용되는 예측 변수의 개수입니다.

fitcsvm함수가입력변수의서브셋을예측변수로사용하는경우함수는해당서브셋만사용하여예측변수의요소를참조합니다。'CategoricalPredictors'값은응답변수,관측값가중치변수및함수가사용하지않는그밖의변수를세지않습니다。

논리형 벡터

요소의값이真正的이면대응되는예측변수데이터의열이범주형변수임을의미합니다。벡터의길이는P.입니다。

문자형행렬 행렬의각행은예측변수의이름입니다。이름은PredictorNames의요소와일치해야합니다。문자형행렬의각행의길이가같게되도록이름뒤에추가로공백을채웁니다。
字符串형배열또는문자형벡터로구성된셀형배열 배열의각요소는예측변수의이름입니다。이름은PredictorNames의요소와일치해야합니다。
“所有” 모든예측변수가범주형변수입니다。

기본적으로예측변수데이터가테이블(资源描述)내에있는경우,변수가논리형벡터,分类형벡터,문자형배열,串형배열또는문자형벡터로구성된셀형배열이면fitcsvm함수는그변수를범주형변수라고가정합니다。예측변수데이터가행렬(X)이면fitcsvm함수는모든예측변수를연속형변수라고가정합니다。다른모든예측변수를범주형예측변수로식별하려면이러한변수를'CategoricalPredictors'이름——값인수를사용하여지정하십시오。

식별된범주형예측변수에대해fitcsvm함수는범주형변수에순서가지정되어있는지에따라서로다른두가지체계를사용하여가변수를생성합니다。순서가지정되지않은범주형변수에대해fitcsvm함수는범주형변수의각수준마다하나의가변수를생성합니다。순서가지정된범주형변수에대해fitcsvm함수는범주개수보다하나가적은가변수를생성합니다。자세한내용은虚拟变量的自动创建항목을참조하십시오。

예:“CategoricalPredictors”、“所有”

데이터형:||逻辑|字符|字符串|单间牢房

훈련에 사용할 클래스의 이름으로, 明确的형 배열, 문자형 배열, 一串형 배열, 논리형 벡터 또는 숫자형 벡터, 문자형 벡터로 구성된 셀형 배열로 지정됩니다.类名资源描述의응답변수또는y와같은데이터형이어야합니다。

类名가문자형배열인경우,각요소는배열의각행에대응되어야합니다。

类名를사용하여다음을수행할수있습니다。

  • 훈련중의클래스순서를지정합니다。

  • 입력인수차원또는출력인수차원의순서를지정합니다。이순서는클래스순서와일치합니다。예를들어,类名를사용하여成本차원의순서나预测로반환되는분류점수의열순서를지정할수있습니다。

  • 훈련에사용할클래스의일부를선택합니다。예를들어,y에 포함된 모든 고유한 클래스 이름의 집합이{' a ', ' b ', ' c '}라고가정해보겠습니다。클래스“一个”“c”의관측값만사용하여모델을훈련시키려면“类名”,{' a ', ' c '}를지정하십시오。

类名의디폴트값은资源描述의응답변수또는y에 포함된 모든 고유한 클래스 이름의 집합입니다.

예:'类名',{ 'B', 'G'}

데이터형:分类|字符|字符串|逻辑|||单间牢房

오분류비용으로,“成本”와함께정사각행렬또는구조체형배열이쉼표로구분되어지정됩니다。

  • 정사각행렬成本를지정하고관측값의실제클래스가一世이면成本(i, j)는한점을클래스j로분류하는데드는비용입니다。즉,행은실제클래스에대응되고,열은예상된클래스에대응됩니다。成本의 대응 행과 대응 열에 대한 클래스 순서를 지정하려면类名이름——값쌍의인수도지정하십시오。

  • 구조체S.를지정하는경우이,구조체는다음과같은두개의필드를가져야합니다。

    • 클래스이름을y와같은데이터형의변수로포함하는S.ClassNames

    • S.ClassNames에서와같은순서로행과열을갖는비용행렬을포함하는美国分类成本

2-클래스 학습의 경우, 비용 행렬을 지정하면 소프트웨어가 비용 행렬에 설명된 벌점을 통합하여 사전 확률을 업데이트합니다. 따라서, 비용 행렬이 디폴트 값으로 재설정됩니다.BoxConstraint成本之前标准化重量의관계와알고리즘동작에대한자세한내용은알고리즘항목을참조하십시오。

디폴트값은다음과같습니다。

  • 단일클래스학습의경우成本= 0

  • 2-클래스학습의경우,我~ = j이면成本(i, j) = 1이고,我=我이면成本(i, j) = 0

예:“成本”,(0,1,2,0)

데이터형:||塑造

예측변수이름으로,고유한이름으로구성형된字符串배열또는고유한문자형벡터로구성된셀형배열로지정됩니다。PredictorNames의기능은훈련데이터를어떤방식으로제공하느냐에따라달라집니다。

  • Xy를제공하는경우,PredictorNames를사용하여X의예측변수에이름을할당할수있습니다。

    • PredictorNames의이름의순서는X의열순서와일치해야합니다。즉,PredictorNames {1}X (: 1)의이름이고,PredictorNames {2}X (:, 2)의이름이되는식입니다。또한,大小(X, 2)元素个数(PredictorNames)는같아야합니다。

    • 기본적으로PredictorNames{x1, x2,…}입니다。

  • 资源描述을제공하는경우,PredictorNames를사용하여훈련에사용할예측변수를선택할수있습니다。즉,fitcsvm함수는PredictorNames의예측변수와이에대한응답변수만을훈련중에사용합니다。

    • PredictorNamesTbl.Properties.VariableNames의부분집합이어야하므로응답변수의이름은포함할수없습니다。

    • 기본적으로,PredictorNames는모든예측변수의이름을포함합니다。

    • 'predictornames'公式중하나만사용하여훈련에사용할예측변수를지정하는것이좋습니다。

예:'PredictorNames',{ 'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'}

데이터형:字符串|单间牢房

각클래스의사전확률로,“之前”와함께다음표에나와있는값이쉼표로구분되어지정됩니다。

설명
“经验” 클래스사전확률은y의클래스상대빈도입니다。
“统一” 모든 클래스 사전 확률은 1/K와 같습니다. 여기서 K는 클래스 개수입니다.
숫자형벡터 벡터의 각 요소는 클래스 사전 확률입니다.Mdl.ClassNames에따라요소의순서를지정하거나类名이름——값쌍의인수를사용하여순서를지정합니다。소프트웨어는합이1이되도록요소를정규화합니다。
구조체

다음과같은두개의필드를갖는구조체S.입니다。

  • S.ClassNames는클래스이름을y와같은유형의변수로포함합니다。

  • S.ClassProbs는 대응되는 사전 확률로 구성된 벡터를 포함합니다. 소프트웨어는 합이1이되도록벡터의요소를정규화합니다。

2 -클래스학습의경우,비용행렬을지정하면소프트웨어가비용행렬에설명된벌점을통합하여사전확률을업데이트합니다。BoxConstraint成本之前标准化重量의관계와알고리즘동작에대한자세한내용은알고리즘항목을참조하십시오。

예:结构( '类名',{{ 'setosa', '云芝', '锦葵'}}, 'ClassProbs',1:3)

데이터형:字符|字符串|||塑造

응답변수이름으로,문자형벡터또는字符串형스칼라로지정됩니다。

  • y를제공하는경우,“ResponseName”을사용하여응답변수의이름을지정할수있습니다。

  • ResponseVarName또는公式를제공하는경우에는“ResponseName”을사용할수없습니다。

예:'ResponseName', '响应'

데이터형:字符|字符串

점수변환방식으로,문자형벡터,串형스칼라또는함수핸들로지정됩니다。

다음표에는사용가능한문자형벡터와字符串형스칼라가요약되어있습니다。

설명
“双重逻辑” 1 / (1 + e2 x
“invlogit” Log (x / (1 - x))
“ismax” 최대점수를갖는클래스의점수를1로설정하고,다른모든클래스의점수를0으로설정합니다。
'Logit模型' 1 / (1 + e- x
'没有任何'또는“身份” X(변환없음)
“标志” x <0的의경우-1
x = 0의경우0
x > 0의경우1
“对称” 2 x - 1
“symmetricismax” 최대 점수를 갖는 클래스의 점수를 1.로 설정하고, 다른 모든 클래스의 점수를 -1.로 설정합니다.
“symmetriclogit” 2/(1+e)- x) - 1

MATLAB함수나사용자가직접정의하는함수의경우,이에대한함수핸들을점수변환에사용하십시오。함수핸들은행렬(원래점수)을받아동일한크기의행렬(변환된점수)을반환합니다。

예:“ScoreTransform”、“分对数的

데이터형:字符|字符串|function_handle

관측값가중치로,“重量”와함께양수값으로구성된숫자형벡터나资源描述에포함된변수의이름이쉼표로구분되어지정됩니다。소프트웨어는X또는资源描述의각행에있는관측값에이에대응하는重量의 값을 함께 사용하여 가중치를 적용합니다.重量의크기는X또는资源描述의행개수와일치해야합니다。

입력 데이터를 테이블资源描述로지정하는경우,重量资源描述에서숫자형벡터를포함하는변수의이름일수있습니다。이경우,重量를문자형벡터또는字符串형스칼라로지정해야합니다。,예를들어가중벡터W.资源描述。W.로저장된경우,이를' W '로지정하십시오。그렇지않은경우,소프트웨어는모델을훈련시킬때W.를포함한资源描述의모든열을예측변수또는응답변수로처리합니다。

기본적으로,重量(N, 1)입니다。여기서NX또는资源描述에포함된관측값개수입니다。

소프트웨어는重量의총합이각클래스의사전확률의값이되도록정규화합니다。BoxConstraint成本之前标准化重量의관계와알고리즘동작에대한자세한내용은알고리즘항목을참조하십시오。

데이터형:||字符|字符串

참고

교차검증이름——값쌍의인수는“OptimizeHyperparameters”이름 - 값쌍의인수와함께사용할수없습니다。“OptimizeHyperparameters”에대한교차검증을수정하려면“HyperparameterOptimizationOptions”이름-값 쌍의 인수를 사용해야만 합니다.

교차검증옵션

모두축소

교차검증된분류기를훈련시키는플래그로,'Crossval'과함께'在'또는“关闭”가쉼표로구분되어지정됩니다。

'在'으로지정하면소프트웨어가10겹교차검증된분류기를훈련시킵니다。

사용자는CVPartition坚持KFold또는Leaveout이름——값쌍의인수중하나를사용하여이교차검증설정을재정의할수있습니다。한번에하나의교차검증이름——값쌍의인수만사용하여교차검증된모델을생성할수있습니다。

또는,Mdlcrossval로 전달하여 나중에 교차 검증을 수행할 수 있습니다.

예:“Crossval”,“上”

교차 검증 분할로,cvpartition으로생성된cvpartition분할객체로지정됩니다。분할객체는교차검증의유형을지정하며훈련세트와검증세트의인덱싱도지정합니다。

교차검증된모델을생성하려면다음4개의이름——값인수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:CVP = cvpartition(500, 'KFold',5)500개를사용하여관측값에대한5겹교차검증에사용할임의분할을생성한다고가정하겠습니다。그런다음,“CVPartition”,本量利를 사용하여 교차 검증된 모델을 지정할 수 있습니다.

홀드아웃검증에사용할데이터의비율로,범위(0,1)내스칼라값으로지정됩니다。'持有',p를 지정하는 경우 소프트웨어는 다음 단계를 완료합니다.

  1. 데이터의p * 100%를무작위로선택하여검증데이터용으로남겨두고나머지데이터를사용하여모델을훈련시킵니다。

  2. 교차검증된모델의训练有素的속성에훈련된간소모델을저장합니다。

교차검증된모델을생성하려면다음4개의이름——값인수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“坚持”,0.1

데이터형:|

교차 검증된 모델에 사용할 겹의 개수로, 1.보다 큰 양의 정수 값으로 지정됩니다.'kfold',k를 지정하는 경우 소프트웨어는 다음 단계를 완료합니다.

  1. 데이터를K.개 세트로 임의로 분할합니다.

  2. 각세트마다해당세트를검증데이터로남겨두고나머지K.- 1개의 세트를 사용하여 모델을 훈련시킵니다.

  3. 교차검증된모델의训练有素的속성에K.×1셀형벡터로K.개의훈련된간소모델을저장합니다。

교차검증된모델을생성하려면다음4개의이름——값인수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“KFold”,5

데이터형:|

리브 - 원 - 아웃교차검증플래그로,'在'또는“关闭”로 지정됩니다.“Leaveout”,“上”을지정하는경우,n개(여기서n은모델의NumObservations속성에지정된관측값중누락된관측값을제외한개수임)의관측값각각에대해소프트웨어가다음단계를완료합니다。

  1. 1개의관측값을검증데이터로남겨두고나머지n - 1개관측값을사용하여모델을훈련시킵니다。

  2. 교차검증된모델의训练有素的속성에n×1셀형벡터로n개의훈련된간소모델을저장합니다。

교차검증된모델을생성하려면다음4개의이름——값인수중하나만지정할수있습니다。CVPartition坚持KFoldLeaveout

예:“Leaveout”,“上”

수렴제어옵션

모두축소

순차적 최소규모 최적화(测绘处)또는 반복 단일 데이터 알고리즘(ISDA)으로 구한 상한 이탈값과 하한 이탈값 간의 기울기 차이에 대한 허용오차로,“DeltaGradientTolerance”와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다.

DeltaGradientTolerance0.인 경우, 소프트웨어는 기울기 차이에 대한 허용오차를 사용하여 최적화 수렴을 확인하지 않습니다.

디폴트값은다음과같습니다。

  • SMO솔버가인경우(예를들어,“规划求解”、“SMO的를설정한경우)1 e - 3

  • 솔버ISDA인가경우(예를들어,“规划求解”、“ISDA的를설정한경우)0.

예:依照“DeltaGradientTolerance”,1

데이터형:|

SMO또는ISDA로구한실현가능성격차허용오차로,“宽容”와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다.

宽容0.인경우,소프트웨어는실현가능성격차허용오차를사용하여최적화수렴을확인하지않습니다。

예:依照“GapTolerance”,1

데이터형:|

수치 최적화 반복의 최대 횟수로,“IterationLimit”와함께양의정수가쉼표로구분되어지정됩니다。

최적화 루틴이 성공적으로 수렴되는지 여부에 상관없이 소프트웨어가 훈련된 모델을 반환합니다.Mdl。C在vergenceInfo는 수렴 정보를 포함합니다.

예:“IterationLimit”,1 e8

데이터형:|

카루쉬-쿤터커(马)상보성조건위반허용오차로,“容忍”와 함께 음이 아닌 스칼라가 쉼표로 구분되어 지정됩니다.

KKTTolerance0.인경우,소프트웨어는KKT상보성조건위반허용오차를사용하여최적화수렴을확인하지않습니다。

디폴트값은다음과같습니다。

  • SMO솔버가인경우(예를들어,“规划求解”、“SMO的를설정한경우)0.

  • 솔버ISDA인가경우(예를들어,“规划求解”、“ISDA的를설정한경우)1 e - 3

예:“KKTorerance”,1e-2

데이터형:|

활성세트감소간의반복횟수로,“ShrinkagePeriod”와함께음이아닌정수가쉼표로구분되어지정됩니다。

'ShrinkagePeriod',0을 설정하는 경우, 소프트웨어는 활성 세트를 축소하지 않습니다.

예:“ShrinkagePeriod”,1000年

데이터형:|

하이퍼파라미터최적화옵션

모두축소

최적화할모수로,“OptimizeHyperparameters”와함께다음값중하나가쉼표로구분되어지정됩니다。

  • '没有任何'(최적화하지않습니다。

  • '汽车'-{“BoxConstraint”、“KernelScale”}을사용합니다。

  • “所有”——모든적합한모수를최적화합니다。

  • 적합한모수이름으로구성형된字符串배열또는셀형배열。

  • optimizableVariable객체로구성된벡터。일반적으로hyperparameters의출력값입니다。

최적화는모수를변경하여fitcsvm에대한교차검증손실(오차)을최소화하려고합니다。교차검증손실에대한자세한내용은分类损失항목을참조하십시오。교차검증유형과최적화의기타측면을제어하려면超参数优化选项이름 - 값쌍의인수를사용하십시오。

참고

“OptimizeHyperparameters”값은다른이름——값쌍의인수를사용하여설정하는모든값을재정의합니다。예를들어,“OptimizeHyperparameters”'汽车'로 설정하면'汽车'값이적용됩니다。

fitcsvm에대한적합한모수는다음과같습니다。

  • BoxConstraint-fitcsvm이기본적으로범위(1 e - 3, 1 e3)에서로그스케일링된양수값중에서탐색을수행합니다。

  • 核尺度-fitcsvm이기본적으로범위(1 e - 3, 1 e3)에서로그스케일링된양수값중에서탐색을수행합니다。

  • KernelFunction-fitcsvm“高斯”“线性”多项式的중에서 탐색을 수행합니다.

  • PolynomialOrder-fitcsvm이범위(2、4)내정수중에서탐색을수행합니다。

  • 标准化-fitcsvm“真正的”'错误的'중에서 탐색을 수행합니다.

디폴트가아닌값을가지는optimizableVariable객체로구성된벡터를전달하여디폴트가아닌모수를설정합니다。예를들면다음과같습니다。

负载鱼腥草params = hyperparameters (“fitcsvm”量,物种);参数(1)。范围=(1的军医,1 e6);

参数个数优化超参数의값으로전달합니다。

기본적으로,반복표시가명령줄에표시되고,최적화에지정된하이퍼파라미터개수에따라플롯이표시됩니다。최적화와플롯에대해목적함수는회귀의경우日志(1+交叉验证丢失)분이고,류의경우오분류율입니다。반복표시를제어하려면“HyperparameterOptimizationOptions”이름——값쌍의인수에대한冗长的필드를설정하십시오。플롯을제어하려면“HyperparameterOptimizationOptions”이름——값쌍의인수에대한ShowPlots필드를설정하십시오。

예제는SVM분류기최적화하기항목을참조하십시오。

예:'汽车'

최적화에사용할옵션으로,“HyperparameterOptimizationOptions”와함께구조체가쉼표로구분되어지정됩니다。이인수는优化超参数이름——값쌍의인수의효과를수정합니다。이구조체에포함된모든필드는선택사항입니다。

필드이름 디폴트값
优化器
  • 'bayesopt'- 베이즈최적화를사용합니다。내부적으로이설정은bayesopt를호출합니다。

  • “gridsearch”——차원당NumGridDivisions개값으로그리드탐색을수행합니다。

  • “randomsearch”-MaxObjectiveEvaluations개점중에서무작위로탐색합니다。

“gridsearch”는그리드에서균등한비복원추출을사용하여무작위순서로탐색을수행합니다。최적화를수행한후,명령sortrows (Mdl.HyperparameterOptimizationResults)를 사용하여 그리드순으로 정렬된 테이블을 얻을 수 있습니다.

'bayesopt'
AcquisitionFunctionName

  • “每秒的预期改进数加上”

  • “expected-improvement”

  • “expected-improvement-plus”

  • '预期 - 每秒改善'

  • “lower-confidence-bound”

  • “probability-of-improvement”

최적화는목적함수의런타임에종속적이기때문에이름에每秒가포함된획득함수는재현가능한결과를산출하지않습니다。이름에+가포함된획득함수는특정영역을과도하게사용하게될경우동작을수정합니다。자세한내용은획득함수유형항목을참조하십시오。

“每秒的预期改进数加上”
MaxObjectiveEvaluations 목적함수실행의최대횟수입니다。 'bayesopt'또는“randomsearch”의 경우30.이고,“gridsearch”의경우그리드전체입니다。
MaxTime

시간제한으로,양의실수로지정됩니다。시간제한은초단위이며,Tic.toc으로측정됩니다。MaxTime은 함수 계산을 중단시키지 않으므로 실행 시간은MaxTime을초과할수있습니다。

NumGridDivisions “gridsearch”의경우,각차원의값개수입니다。이값은각차원에대한값의개수를제공하는양의정수로구성된벡터또는모든차원에적용되는스칼라일수있습니다。이필드는범주형변수의경우무시됩니다。 10
ShowPlots 플롯 표시 여부를 나타내는 논리값입니다.真正的인경우,이필드는반복횟수에대해가장적합한목적함수값을플로팅합니다。하나또는두개의최적화모수가있고优化器'bayesopt'인경우,ShowPlots는이모수에대해서도목적함수의모델을플로팅합니다。 真正的
Saptintermediateresults. 优化器'bayesopt'인경우결과를저장할지여부를나타내는논리값입니다。真正的인경우,이필드는각반복마다“BayesoptResults”라는이름의작업공간변수를덮어씁니다。변수는贝叶斯优化객체입니다。
冗长的

명령줄에대한표시입니다。

  • 0.——반복표시안함

  • 1——반복표시

  • 2——추가정보와함께반복표시

자세한내용은bayesopt冗长的이름——값쌍의인수를참조하십시오。

1
UseParallel 베이즈 최적화를 병렬로 실행할지 여부를 나타내는 논리값으로, 并行计算工具箱™가 필요합니다. 병렬 시간 재현이 불가능하기 때문에, 병렬 베이즈 최적화에서 반드시 재현 가능한 결과를 산출하지는 않습니다. 자세한 내용은平行的贝叶斯优化항목을참조하십시오。
重新分区

매반복시교차검증을다시분할할지여부를나타내는논리값입니다。인경우,최적화함수는최적화에단일분할을사용합니다。

真正的인경우,분할잡음이고려되므로일반적으로가장견고한결과가제공됩니다。그러나,真正的에서좋은결과를생성하려면적어도두배더많은횟수의함수실행이필요합니다。

다음과같은3개필드이름중하나만사용합니다。
CVPartition cvpartition으로생성되는cvpartition객체입니다。 교차검증필드를지정하지않을경우“Kfold”,5
坚持 홀드아웃비율을나타내는범위(0,1)내스칼라입니다。
Kfold 1보다큰정수입니다。

예:'hyperparameteroptimizationOptions',struct('maxobjectiveevaluations',60)

데이터형:塑造

출력인수

모두축소

훈련된SVM분류모델로,ClassificationSVM모델객체또는ClassificationededModel.교차검증된모델객체로반환됩니다。

이름——값쌍의인수KFold坚持LeaveoutCrossVal또는CVPartition중어느하나라도설정하면,MdlClassificationededModel.교차검증된분류기입니다。그렇지않은경우,MdlClassificationSVM분류기입니다。

Mdl의속성을참조하려면점표기법을사용하십시오。예를들어,명령창에Mdl.Alpha를입력하여훈련된라그랑주승수를표시할수있습니다。

제한사항

  • fitcsvm은단일클래스학습응용사례와2 -클래스학습응용사례에대해SVM분류기를훈련시킵니다。세개이상의클래스를갖는데이터를사용하여SVM분류기를훈련시키려면菲切克를사용하십시오。

  • fitcsvm은저차원및중간차원의데이터세트를지원합니다。고차원데이터세트에대해서는fitclinear를대신사용하십시오。

세부정보

모두축소

상자제약조건

상자제약조건은마진을위반하는관측값에적용되는최대벌점을제어하고과적합을방지(정규화)하는데도움이되는모수입니다。

상자 제약 조건을 늘리면 支持向量机분류기가 더 적은 서포트 벡터를 할당합니다. 그러나, 상자 제약 조건을 늘리면 훈련 시간이 더 길어질 수 있습니다.

그람 행렬(克矩阵)

n개벡터의집합으로구성된그람행렬{x1. . xN; xj∊RP.}는커널함수ϕ를사용하여변환된예측변수의내적인G (xj, xK.) = <ϕ(xj),ν(x)K.) >로정의된요소(j, k)를갖는n×n행렬입니다。

비선형SVM의경우이,알고리즘은예측변수데이X터의행을사용하여그람행렬을형성합니다。쌍대문제형식화에는X포함된관측값의내적을결과로생성되는그람행렬의대응요소로바꿉니다(“커널트릭(内核技巧)“이라고함)。그결과,비선형SVM은변환된예측변수공간에서동작하여분리초평면을찾습니다。

카루쉬-쿤터커(马)상보성조건

카루쉬-쿤-터커(KKT)상보성 조건은 최적의 비선형 계획법 해에 요구되는 최적화 제약 조건입니다.

SVM에서马상보성조건은다음과같습니다。

{ α j [ y j F X j 1 + ξ j ] = 0. ξ j C α j = 0.

이는모든J = 1,...,N에대해적용됩니다。여기서 F X j = ϕ X j ' β + B. ϕ는커널함수(그람행렬참조)이고,ξj는여유변수입니다。클래스가완벽하게분리가능한경우,모든j = 1,……n에대해ξj= 0입니다。

단일클래스학습

단일클래스학습,즉비지도SVM은고차원예측변수공간(원래예측변수공간이아님)의원점에서데이터를분리하는것이목적이며,이상값감지에사용되는알고리즘입니다。

이알고리즘은이진분류를위한SVM의 알고리즘과 비슷합니다. 목적은 다음과 같은 쌍대 문제 표현식의 크기를 최소화하는 것입니다.

0.5 j K. α j α K. G X j X K.

여기에서 α 1 ... α N 은 다음의 값입니다.

α j = N ν

또한,모든j = 1,……n에대해 0. α j 1 입니다。G(Xj, xK.)의값은그람행렬의요소(j, k)에있습니다。

ν의값이작을경우서포트벡터의수가더적어지고,이에따라매끄럽고엄격한결정경계가생성됩니다。ν의값이클경우서포트벡터의수가더많아지고,이에따라굴곡이많은유연한결정경계가생성됩니다。ν의최적값은데이터복잡성을담을수있을정도로크고과잉훈련을피할수있을정도로작아야합니다。또한0 <ν≤1입니다。

자세한내용은[5]항목을참조하십시오。

서포트벡터

서포트벡터는순양수추정값α1,…,αN에대응되는관측값입니다。

주어진훈련세트에대해더적은수의서포트벡터를생성하는SVM분류기가더좋습니다。

이진분류를위한서포트벡터머신

SVM이진분류알고리즘은두클래스로데이터를분리하는최적의초평면을탐색합니다。분리가능한클래스에대해최적의초평면은양성클래스와음성클래스에대한경계를생성하는,이를둘러싸는마진(관측값을포함하지않는공간)을극대화합니다。분리가불가능한클래스에대해서도목적은같지만,이알고리즘은클래스경계의잘못된변에있는모든관측값에대한마진의길이에벌점을적용합니다。

선형SVM점수함수는다음과같습니다。

F X = X ' β + B.

여기서는다음을조건으로합니다。

  • x는(X의행에대응하는)관측값입니다。

  • 벡터β는초평면에대한직교벡터를정의하는계수(Mdl.Beta에 대응)를 포함합니다. 분리 가능한 데이터에 대해 최적의 마진 길이는 2 / β 입니다。

  • b는(Mdl。偏见에대응하는)편향항입니다。

특정 계수에 대한 f(x)의 근은 초평면을 정의합니다. 특정 초평면에 대해 f(z)는 점 Z에서 초평면까지의 거리입니다.

이알고리즘은양성클래스(y = 1)와음성클래스(y = 1)의관측값을분리된상태로유지하면서최대마진길이를탐색합니다。

  • 분리 가능한 클래스인 경우, 모든 j=1,…,n에 대해 Yjf (xj) ≥ 1.을 만족하는 β 및 B에 대해 β 를 최소화하는 것이 목적입니다. 이것은 분리 가능한 클래스에 대한원문제(原始)형식화입니다。

  • 분리가불가능한클래스에대해이알고리즘은여유변수(ξj)를사용하여해당클래스의마진경계를교차하는관측값의목적함수에벌점을적용합니다。해당클래스의마진경계를교차하지않는관측값에대해서는ξj= 0이고,그렇지않은경우ξj≥0입니다。

    모든j = 1, . .n에대해那그리고 양의 스칼라상자제약조건C에대해 y j F X j 1 ξ j ξ j 0. 을만족하는β,b,ξj에대해 0.5 β 2 + C ξ j 를최소화하는것이목적입니다。이것은분리가불가능한클래스에대한원문제(原始)형식화입니다。

이알고리즘은목적함수를최적화하기위해라그랑주승수방법을사용합니다。여기에는n개의계수α1,…,αNMdl.Alpha에대응)이사용됩니다。선형SVM의쌍대문제형식화는다음과같습니다。

  • 분리 가능한 클래스에 대해 다음을 최소화합니다.

    0.5 j = 1 N K. = 1 N α j α K. y j y K. X j ' X K. j = 1 N α j

    이는α1,…,αN에 대해 수행되고 α j y j = 0. ,모든j = 1,……n에대해αj≥0및카루쉬-쿤터커(马)상보성조건이적용됩니다。

  • 분리가불가능한클래스의경우,목적은분리가능한클래스와동일하되모든j = 1, . .n에대해 0. α j C 라는추가조건이적용됩니다。

결과로생성되는점수함수는다음과같습니다。

F ^ X = j = 1 N α ^ j y j X ' X j + B. ^

B. ^ 는편향에대한추정값이고 α ^ j 는벡터 α ^ , j = 1,…那N에 대한 j번째 추정값입니다. 이렇게 작성된 점수 함수는 원문제 형식화의 결과로 β의 추정값을 생성하지 않습니다.

支持向量机알고리즘은 标志 F ^ Z. 를사용하여새관측값z를분류합니다。

비선형경계가클래스를분리하는경우가있습니다。비선형支持向量机은변환된예측변수공간에서동작하여최적의분리초평면을찾습니다。

비선형SVM의쌍대문제형식화는다음과같습니다。

0.5 j = 1 N K. = 1 N α j α K. y j y K. G X j X K. j = 1 N α j

이는α1,…,αN에 대해 수행되고 α j y j = 0. , 모든 j=1,…,n에 대해 0. α j C 및马상보성조건이적용됩니다。G(XK., xj)는그람행렬의요소입니다。결과로나타나는점수함수는다음과같습니다。

F ^ X = j = 1 N α ^ j y j G X X j + B. ^

자세한내용은서포트벡터머신이해하기[1]항목및[3]항목을참조하십시오。

  • 데이터세트가크지않다면항상예측변수를표준화하도록하십시오(标准化참조). 표준화를 수행하면 예측 변수가 측정되는 척도에 영향을 받지 않게 됩니다.

  • KFold이름——값쌍의인수를사용하여교차검증을수행하는것이좋습니다。교차검증결과를통해SVM분류기가얼마나잘일반화되는지확인할수있습니다。

  • 단일클래스학습의경우:

    • 이름——값쌍인수α의디폴트설정을사용하는경우훈련시간이길어질수있습니다。훈련속도를높이려면α를대부분0.으로구성된벡터로설정하십시오。

    • 더 적은 서포트 벡터가 생성되도록 이름-값 쌍의 인수怒族0.에더가까운값으로설정하십시오。그러면더매끄럽지만엄격한결정경계가생성됩니다。

  • 서포트 벡터의 희소성은 支持向量机분류기에 있어서는 이상적인 속성입니다. 서포트 벡터의 개수를 줄이려면BoxConstraint를 큰 값으로 설정하십시오. 단, 이 동작을 수행하면 훈련 시간이 증가합니다.

  • 최적의 훈련 시간을 위해CacheSize를컴퓨터의메모리제한이허용하는한최대한높게설정하십시오。

  • 훈련세트에서서포트벡터의개수가관측값보다훨씬적을거라예상되는경우,이름——값쌍의인수“ShrinkagePeriod”를 사용하여 활성 세트를 축소함으로써 수렴되는 속도를 상당히 높일 수 있습니다.“ShrinkagePeriod”,1000年을지정하는것이좋습니다。

  • 결정 경계에서 멀리 떨어진 중복된 관측값은 수렴에 영향을 미치지 않습니다. 그러나, 결정 경계 가까이에 있는 중복된 관측값은 몇 개만 있더라도 수렴되는 속도가 상당히 느려질 수 있습니다. 다음과 같은 경우“RemoveDuplicates”,真的를지정하여수렴되는속도를높이십시오。

    • 데이터 세트에 중복된 관측값이 많이 있는 경우.

    • 몇개의중복된관측값이결정경계가까이에있다고의심되는경우。

    훈련중에원래데이터세트를유지하기위해fitcsvm함수는원래데이터세트와중복된관측값을제거한두개의데이터세트를일시적으로별도로저장해야합니다。따라서,몇몇중복된관측값을포함하는데이터세트에대해真正的를지정할경우fitcsvm함수는원래데이터메모리의두배에가까운메모리를사용합니다。

  • 모델을훈련시킨후에는새데이터에대한레이블을예측하는C / c++코드를생성할수있습니다。C / c++코드를생성하려면MATLAB编码器™가필요합니다。자세한내용은代码生成简介항목을참조하십시오。

알고리즘

  • SVM이진분류알고리즘의수학적공식은이진분류를위한서포트벡터머신항목과서포트벡터머신이해하기항목을참조하십시오。

  • <未定义>,빈문자형벡터(), 빈 一串형(""),< >失踪값은누락값을나타냅니다。fitcsvm은누락응답변수에대응되는데이터의전체행을제거합니다。총가중치를계산할때(다음글머리기호항목참조),fitcsvm은최소한개의누락예측변수를갖는관측값에대응되는가중치를모두무시합니다。이동작은균형클래스문제에서불균형사전확률을초래할수있습니다。따라서,관측값상자제약조건은BoxConstraint와 일치하지 않을 수 있습니다.

  • fitcsvm은가중치또는사전확률이0인관측값을제거합니다。

  • 2-클래스학습의경우,비용행렬 C 成本참조)를지정하면소프트웨어가 C 에설명되어있는벌점을적용하는방식으로클래스사전확률p (之前참조)를pC로 업데이트합니다.

    구체적으로,fitcsvm은다음단계를완료합니다。

    1. P. C = P. ' C 를계산합니다。

    2. 업데이트된사전확률의합이1이되도록pC*를 정규화합니다.

      P. C = 1 j = 1 K. P. C j P. C

      K는클래스개수입니다。

    3. 비용행렬을다음과같이디폴트값으로재설정합니다。

      C = [ 0. 1 1 0. ]

    4. 훈련데이터에서사전확률0인이클래스에대응되는관측값을제거합니다。

  • 2-클래스학습의경우,fitcsvm은모든관측값가중치(重量참조)의합이1이되도록정규화합니다。그런다음,정규화된가중치를합이관측값이속하는클래스의업데이트된사전확률이되도록다시정규화합니다。즉,K클래스의관측값Ĵ에대한총가중치는다음과같습니다。

    W. j = W. j j K. W. j P. C K.

    W.j는 관측값 J에 대한 정규화된 가중치이고, Pc、 k는ķ클래스의업데이트된사전확률입니다(앞에나와있는글머리기호항목참조)。

  • 2-클래스학습의경우,fitcsvm은상자제약조건을훈련데이터의각관측값에할당합니다。관측값j의상자제약조건에대한공식은다음과같습니다。

    C j = N C 0. W. j

    n은훈련표본크기이고,C0.은초기상자제약조건이며(“BoxConstraint”이름——값쌍의인수참조), W. j 는관측값j의총가중치입니다(앞에나와있는글머리기호목록참조)。

  • “标准化”,真的를 설정하고“成本”“之前”또는“重量”이름——값쌍의인수를설정하면fitcsvm이대응되는가중평균과가중표준편차를사용하여예측변수를표준화합니다。즉,fitcsvm은다음을사용하여예측변수j (xj)를 표준화합니다.

    X j = X j μ j σ j

    μ j = 1 K. W. K. K. W. K. X j K.

    Xjk는예측변수j(열)의관측값k(행)입니다。

    σ j 2 = v 1 v 1 2 v 2 K. W. K. X j K. μ j 2

    v 1 = j W. j

    v 2 = j W. j 2

  • P.가훈련데이터에서사용자가예상하는이상값비율이고OutlierFraction, p를설정한다고가정합니다。

    • 단일클래스학습의경우,소프트웨어가훈련데이터에포함된관측값의100P.%가음의점수를가지도록편향항을훈련시킵니다。

    • 2-클래스 학습의 경우 소프트웨어가로버스트학습을구현합니다。다시말해,최적화알고리즘이수렴될때소프트웨어가관측값의100P.%를제거한다는의미입니다。제거되는관측값은크기가큰기울기에해당합니다。

  • 예측 변수 데이터에 범주형 변수가 포함된 경우 소프트웨어가 일반적으로 이러한 변수에 대해 전체 가변수 인코딩을 사용합니다. 소프트웨어는 각 범주형 변수의 각 수준마다 하나의 가변수를 생성합니다.

    • PredictorNames속성은원래예측변수이름마다하나의요소를저장합니다。예를들어,세개의예측변수가있고,그중하나가세개수준을갖는범주형변수라고가정해보겠습니다。그러면PredictorNames는예측변수의원래이름을포함하는문자형벡터로구성된1×3셀형배열이됩니다。

    • ExpandedPredictorNames속성은가변수를포함하여예측변수마다하나의요소를저장합니다。예를들어,세개의예측변수가있고,그중하나가세개수준을갖는범주형변수라고가정해보겠습니다。그러면ExpandedPredictorNames는예측변수이름및새가변수의이름을포함하는문자형벡터로구성된1×5셀형배열이됩니다。

    • 마찬가지로,贝塔속성은가변수를포함하여예측변수마다하나의베타계수를저장합니다。

    • 金宝appSupportVectors속성은가변수를포함하여서포트벡터에대한예측변수값을저장합니다。예를들어,m개의서포트벡터와세개의예측변수가있고,그중하나가세개의수준을갖는범주형변수라고가정해보겠습니다。그러면金宝appSupportVectors는n×5행렬이됩니다。

    • X속성은훈련데이터를원래입력된대로저장하고가변수는포함하지않습니다。입력값이테이블인경우,X는예측변수로사용된열만포함합니다。

  • 테이블에 지정된 예측 변수에 대해 변수 중 하나가 순서가 지정된(순서형) 범주를 포함하는 경우 소프트웨어는 이러한 변수에 대해 순서형 인코딩(顺序编码)을 사용합니다.

    • 순서가 지정된 K개의 수준을 갖는 변수에 대해 소프트웨어는k - 1개의가변수를생성합니다。j번째가변수는j수준까지는1이되고,J + 1에서k까지의수준에서는+1이 됩니다.

    • ExpandedPredictorNames속성에저장된가변수의이름은값+1을갖는첫번째수준을나타냅니다。소프트웨어는수준2,3,…那K.의이름을 포함하여 가변수에 대해k - 1개의추가예측변수이름을저장합니다。

  • 모든솔버는L1소프트마진(Soft-Margin)최소화를구현합니다。

  • 단일클래스학습의경우,소프트웨어는다음을만족하는라그랑주승수α1,…,αN을추정합니다。

    j = 1 N α j = N ν

참고문헌

克里斯汀尼尼,N。c。肖-泰勒。支持向量机和其他基于核的学习方法简介。金宝app英国剑桥:剑桥大学出版社,2000年。

[2]球迷,R.-E。,林志信。陈,C.-J。林。使用二阶信息进行训练支持向量机的工作集选择金宝app机器学习研究杂志,2005年第6卷,1889-1918页。

Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素,第二版。纽约:施普林格,2008年。

凯克曼V., T. -M。和M. Vogt。从大数据集训练核机的迭代单数据算法:理论与性能金宝app支持向量机:理论与应用。王力波主编,255-274。柏林:斯普林格出版社,2005年版。

Scholkopf, B., J. C. Platt, J. C. shaw - taylor, A. J. Smola, R. C. Williamson。"估算高维分布的支持度"金宝app神经第一版。那V.ol. 13, Number 7, 2001, pp. 1443–1471.

[6] Scholkopf,B。,和A.斯莫拉岛。支持向量机,规范化,优化和超越,自适应计算和机金宝app器学习:与内核学习。马萨诸塞州剑桥:麻省理工学院出版社,2002年。

확장기능

R2014a에 개발됨