主要内容

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

fitcsvm

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

설명

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

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

이진SVM모델을결합하는다중클래스학습에대해서는오류수정출력코드(ECOC)를사용하십시오。자세한내용은fitcecoc를참조하십시오。

支持向量机회귀모델을훈련시키려면저차원및중간차원의예측변수데이터세트의경우fitrsvm을참조하고고차원데이터세트의경우fitrlinear를참조하십시오。

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

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

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

예제

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

예제

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

예제

모두 축소

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

负载fisheririsInds = ~strcmp(种,“setosa”);X = meas(inds,3:4);Y = species(inds);

처리된데이터세트를사용하여支持向量机분류기를훈련시킵니다。

svm模型= fitcsvm(X,y)
SVMModel = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 100 Alpha: [24x1 double] Bias: -14.4149 KernelParameters: [1x1 struct] BoxConstraints: [100x1 double] ConvergenceInfo: [1x1 struct] Is万博1manbetxSupportVector: [100x1 logical] Solver: 'SMO' Properties, Methods

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

classOrder = SVMModel。一会
classOrder =2 x1细胞{'versicolor'} {'virginica'}

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

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

sv = SVMModel.万博1manbetxSupportVectors;图gscatter(X(:,1),X(:,2),y)保持情节(sv (: 1), sv (:, 2),“柯”“MarkerSize”10)传说(“多色的”“virginica”“万博1manbetx支持向量”)举行

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

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

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

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

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

SVMModel = fitcsvm(X,Y,“标准化”,真的,“KernelFunction”“RBF”...“KernelScale”“汽车”);

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

支持向量机분류기를교차검합니다。기본적으로,소프트웨어는10겹교차검을사용합니다。

CVSVMModel = crossval(SVMModel);

CVSVMModelClassificationPartitionedModel교차검된분류기입니다。

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

classLoss = kfoldLoss(CVSVMModel)
classLoss = 0.0484

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

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

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

负载fisheririsX = meas(:,1:2);y = ones(size(X,1),1);

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

rng (1);SVMModel = fitcsvm(X,y,“KernelScale”“汽车”“标准化”,真的,...“OutlierFraction”, 0.05);

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

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

svInd = SVMModel.Is万博1manbetxSupportVector;H = 0.02;%网格步长[X1,X2] = meshgrid(min(X(:,1)):h:max(X(:,1)),,...min (X (:, 2)): h:马克斯(X (:, 2)));[~,score] = predict(SVMModel,[X1(:),X2(:)]);scoreGrid =重塑(分数,大小(X1,1),大小(X2,2));图绘制(X (: 1), (:, 2),“k”。)举行情节(X (svInd, 1), X (svInd, 2),“罗”“MarkerSize”,10)轮廓(X1,X2,scoreGrid)色条;标题(“{\bf基于一类支持向量机的虹膜离群值检测}”)包含(“萼片长度(厘米)”) ylabel (“萼片宽度(厘米)”)传说(“观察”“万博1manbetx支持向量”)举行

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

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

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

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

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

负载fisheririsX = meas(:,3:4);Y =物种;

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

图gscatter (X (: 1), (:, 2), Y);H = gca;Lims = [h;XLim h.YLim];提取x轴和y轴限制标题(“{\bf虹膜测量散点图}”);包含(“花瓣长度(厘米)”);ylabel (“花瓣宽度(厘米)”);传奇(“位置”“西北”);

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

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

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

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

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

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

svm模型= cell(3,1);类=唯一的(Y);rng (1);%用于再现性j = 1: number (classes) index = strcmp(Y,classes(j));为每个分类器创建二进制类SVMModels{j} = fitcsvm(X,indx,“类名”(虚假的真实),“标准化”,真的,...“KernelFunction”“rbf”“BoxConstraint”1);结束

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

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

D = 0.02;[x1Grid, x2Grid] = meshgrid (min (X (: 1)): d:马克斯(X (: 1))...min (X (:, 2)): d:马克斯(X (:, 2)));xGrid = [x1Grid(:),x2Grid(:)];N = size(xGrid,1);分数=零(N,数字(类));j = 1: number (classes) [~,score] = predict(SVMModels{j},xGrid);分数(:,j) =分数(:,2);第二列包含积极的班级分数结束

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

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

[~,maxScore] = max(Scores,[],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虹膜分类区域}”);包含(“花瓣长度(厘米)”);ylabel (“花瓣宽度(厘米)”);传奇(h, {“setosa地区”“杂色的地区”“virginica地区”...“观察setosa”的观察到的多色的“观察virginica”},...“位置”“西北”);轴持有

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.21652 | 17.039 | 0.21652 | 0.21652 | 64.836 | 0.0015729 |
| 2 |接受| 0.35897 | 0.07617 | 0.21652 | 0.22539 | 0.036335 | 5.5755 |
| 3 |最佳| 0.13105 | 6.632 | 0.13105 | 0.14152 | 0.0022147 | 0.0023957 |
| 4 |接受| 0.35897 | 0.074778 | 0.13105 | 0.13108 | 5.1259 | 98.62 |
| 5 |接受| 0.1339 | 13.599 | 0.13105 | 0.13111 | 0.0011599 | 0.0010098 |
| 6 |接受| 0.13105 | 3.171 | 0.13105 | 0.13106 | 0.0010151 | 0.0045756 |
| 7 |最佳| 0.12821 | 8.4294 | 0.12821 | 0.12819 | 0.0010563 | 0.0022307 |
| 8 |接受| 0.1339 | 10.901 | 0.12821 | 0.13013 | 0.0010113 | 0.0026572 |
| 9 |接受| 0.12821 | 6.1095 | 0.12821 | 0.12976 | 0.0010934 | 0.0022461 |
| 10 |接受| 0.12821 | 3.646 | 0.12821 | 0.12933 | 0.0010315 | 0.0023551 |
| 11 |接受| 0.1396 | 16.231 | 0.12821 | 0.12954 | 994.04 | 0.20756 |
| 12 |接受| 0.13105 | 15.216 | 0.12821 | 0.12945 | 20.145 | 0.044584 |
| 13 |接受| 0.21368 | 17.538 | 0.12821 | 0.12787 | 903.79 | 0.056122 |
| 14 |接受| 0.1339 | 0.25382 | 0.12821 | 0.12939 | 0.018688 | 0.038639 |
| 15 |接受| 0.12821 | 2.712 | 0.12821 | 0.1295 | 5.6464 | 0.15938 |
| 16 |接受| 0.13675 | 9.392 | 0.12821 | 0.12798 | 0.5485 | 0.020716 |
| 17 |接受| 0.12821 | 6.1911 | 0.12821 | 0.12955 | 1.2899 | 0.063233 |
| 18 |接受| 0.1339 | 9.0842 | 0.12821 | 0.12957 | 869.51 | 0.94889 |
| 19 |接受| 0.13675 | 9.2152 | 0.12821 | 0.12957 | 112.89 | 0.31231 |
| 20 |接受| 0.13105 | 0.09432 | 0.12821 | 0.12958 | 0.0010803 | 0.03695 |
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| |运行时| | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.13675 | 9.1747 | 0.12821 | 0.1299 | 7.7299 | 0.076169 |
| 22 |最佳| 0.12536 | 0.14985 | 0.12536 | 0.13007 | 0.0010485 | 0.013248 |
| 23 |接受| 0.20228 | 16.954 | 0.12536 | 0.12548 | 0.060212 | 0.0010323 |
| 24 |接受| 0.1339 | 0.21183 | 0.12536 | 0.12556 | 0.30698 | 0.16097 |
| 25 |接受| 0.1339 | 14.522 | 0.12536 | 0.12923 | 963.05 | 0.5183 |
| 26 |接受| 0.13675 | 0.24834 | 0.12536 | 0.12888 | 0.0039748 | 0.015475 |
| 27 |接受| 0.1339 | 1.4307 | 0.12536 | 0.12889 | 0.33582 | 0.066787 |
| 28 |接受| 0.1339 | 14.534 | 0.12536 | 0.12884 | 4.2069 | 0.032774 |
| 29 |最佳| 0.12536 | 0.11308 | 0.12536 | 0.12658 | 0.0010233 | 0.017839 |
| 30 |接受| 0.12536 | 0.12514 | 0.12536 | 0.12579 | 0.0010316 | 0.019592 |

__________________________________________________________ 优化完成。最大目标达到30个。总函数计算:30总运行时间:234.177秒。总目标函数评估时间:213.0698最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 0.0010233 0.017839观测目标函数值= 0.12536估计目标函数值= 0.12579函数评估时间= 0.11308最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 0.0010233 0.017839估计目标函数值= 0.12579估计函数评估时间= 0.13623
Mdl = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 HyperparameterOptimizationResults: [1×1 BayesianOptimization] Alpha: [91×1 double] Bias: -5.6976 KernelParameters: [1×1 struct] BoxConstraints: [351×1 double] ConvergenceInfo: [1×1 struct] Is万博1manbetxSupportVector: [351×1 logical] Solver: 'SMO' Properties, Methods

입력marketing수

모두 축소

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

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

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

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

데이터형:表格

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

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

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

一会이름-값쌍의通讯录수를사용하여클래스의순서를지정하는것이좋습니다。

데이터형:字符|字符串

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

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

식에포함되는변수이름은资源描述에포함된변수이름(Tbl.Properties.VariableNames)이면서동시에유효한matlab®식별자여야합니다。

isvarname함수를사용하여资源描述에포함된변수이름을확할수있습니다。다음코드는유효한변수이름을갖는각변수에대해논리값1真正的)을반환합니다。

cellfun (@isvarname Tbl.Properties.VariableNames)
资源描述에포함된변수이름이유효하지않으면matlab.lang.makeValidName함수를사용하여변수이름을변환하십시오。
Tbl.Properties.VariableNames = matlab.lang.makeValidName(Tbl.Properties.VariableNames);

데이터형:字符|字符串

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

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

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

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

  • 一会이름-값쌍의通讯录수를사용하여클래스순서를지정하는것이좋습니다。

데이터형:分类|字符|字符串|逻辑|||细胞

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

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

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

X에나오는순서로예측변수의이름을지정하려면“PredictorNames”이름-값쌍의通讯录수를사용하십시오。

데이터형:|

이름-값쌍의通讯录수

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

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

모두 축소

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

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

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

예:“BoxConstraint”,100年

데이터형:|

그람 행렬의소를계산하는데사용되는커널함수로,“KernelFunction”과함께커널함수이름이쉼@ @로구분되어지정됩니다。G (xj, xk)가그람행렬의소(j,k)라고가정합니다。여기서xj와xkX의관측값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)
여기서

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

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

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

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

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

예:“KernelFunction”、“高斯”

데이터형:字符|字符串

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

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

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

예:“KernelScale”、“汽车”

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

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

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

예:“PolynomialOrder”,2

데이터형:|

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

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-클래스학습에대해“OutlierFraction”을양수값으로설정하는경우ISDA的이고,그렇지않은경우SMO的입니다。

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

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

  • “α”의각소는X의관측값에대응됩니다。

  • “α”을포함할수없습니다。

  • “α”와교차검이름-값쌍의수(“CrossVal”“CVPartition”“坚持”“KFold”또는“Leaveout”)중하나를지정하는경우,소프트웨어가오류를반환합니다。

Y가결측값을포함하는경우,결측값에대응되는YX“α”의모든행을제거하십시오。즉,다음을입력합니다。

idx = ~isundefined(分类(Y));Y = Y(idx,:);X = X(idx,:);Alpha = Alpha (idx);
그런다음,YXα를각각응답변수,예측변수,초기알파추정값으로전달합니다。

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

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

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

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

데이터형:|

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

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

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

예:“CacheSize”、“最大”

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

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

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

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

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

ClipAlphas는smo및isda수렴에향을미칠수있습니다。

예:“ClipAlphas”,假的

데이터형:逻辑

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

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

예:“怒”,0.25

데이터형:|

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

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

예:“NumPrint”,500年

데이터형:|

훈련데이터의이상값예상비율로,“OutlierFraction”과함께구간[0,1)내숫자형스칼라가쉼。

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

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

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

예:“OutlierFraction”,0.01

데이터형:|

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

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

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

데이터형:逻辑

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

다음` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `。

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

예:“详细”,1

데이터형:|

기타분류옵션

모두 축소

범주형예측변수목록으로,“CategoricalPredictors”와함께다음` ` `에나와있는값중하나가쉼` ` ` `로구분되어지정됩니다。

설명
양의정수로구성된벡터 벡터의각소는범주형변수를포함하는예측변수데이터의열(X또는资源描述)에대응되는marketing덱스값입니다。
논리형벡터 소의값이真正的이면대응되는예측변수데이터의열(X또는资源描述)이범주형변수임을의미합니다。
문자형행렬 행렬의각행은예측변수의이름입니다。이름은PredictorNames의소와일치해야합니다。문자형행렬의각행의길이가같게되도록이름뒤에추가로공백을채웁니다。
字符串형배열또는문자형벡터로구성된셀형배열 배열의각소는예측변수의이름입니다。이름은PredictorNames의소와일치해야합니다。
“所有” 모든예측변수가범주형변수입니다。

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

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

예:“CategoricalPredictors”、“所有”

데이터형:||逻辑|字符|字符串|细胞

훈련에사용할클래스의이름으로,“类名”와함께直言형배열,문자형배열,字符串형배열,논리형벡터또는숫자형벡터,문자형벡터로구성된셀형배열이쉼표로구분되어지정됩니다。一会Y와같은데이터형이어야합니다。

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

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

  • 훈련중에클래스를정렬합니다。

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

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

一会의디폴트값은Y에포함된모든고유한클래스이름의집합입니다。

예:“类名”,{' b ', ' g '}

데이터형:分类|字符|字符串|逻辑|||细胞

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

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

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

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

    • S.ClassNames에서와같은순서로행과열을갖는비용행렬을포함하는S.ClassificationCosts

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

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

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

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

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

데이터형:||结构体

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

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

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

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

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

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

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

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

예:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}

데이터형:字符串|细胞

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

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

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

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

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

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

예:结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)

데이터형:字符|字符串|||结构体

응답변수이름으로,“ResponseName”과함께문자형벡터또는字符串형스칼라가쉼` ` `로구분되어지정됩니다。

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

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

예:“ResponseName”、“响应”

데이터형:字符|字符串

점수변환방식으로,“ScoreTransform”과함께문자형벡터,弦형스칼라또는함수핸들이쉼표로구분되어지정됩니다。

다음` ` ` `에는사용가능한문자형벡터와string형스칼라가` ` ` ` `약되어있습니다。

설명
“doublelogit” 1/(1 + e2 x
“invlogit” Log (x / (1 - x))
“ismax” 최대점수를갖는클래스의점수를1로설정하고,다른모든클래스의점수를0으로설정합니다。
分对数的 1/(1 + e- x
“没有”또는“身份” X(변환없음)
“标志” X < 0의경우-1
X = 0의경우0
X > 0의경우
“对称” 2x - 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으로생성된cvpartition분할객체가쉼@ @로구분되어지정됩니다。분할객체는교차검의유형을지정하며훈련세트와검세트의덱싱도지정합니다。

교차검된모델을생성하려면다음4개의이름-값쌍의수중하나를사용하십시오。CVPartition坚持KFold또는Leaveout

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

홀드아웃검에사용할데이터의비율로,“坚持”과함께범위(0,1)내스칼라값이쉼로구분되어지정됩니다。‘坚持’,p를지정하는경우소프트웨어는다음단계를완료합니다。

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

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

교차검된모델을생성하려면다음4개의이름-값쌍의수중하나를사용하십시오。CVPartition坚持KFold또는Leaveout

예:“坚持”,0.1

데이터형:|

교차검된모델에사용할겹의개수로,“KFold”와함께1보다큰양의정수값이쉼로구분되어지정됩니다。KFold, k를지정하는경우소프트웨어는다음단계를완료합니다。

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

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

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

교차검된모델을생성하려면다음4개의이름-값쌍의수중하나를사용하십시오。CVPartition坚持KFold또는Leaveout

예:“KFold”,5

데이터형:|

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

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

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

교차검된모델을생성하려면다음4개의이름-값쌍의수중하나를사용하십시오。CVPartition坚持KFold또는Leaveout

예:“Leaveout”,“上”

수렴제어옵션

모두 축소

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

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

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

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

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

예:依照“DeltaGradientTolerance”,1

데이터형:|

Smo또는isda로구한실현가능성격차허용오차로,“GapTolerance”와함께음이아닌스칼라가쉼@ @로구분되어지정됩니다。

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

예:依照“GapTolerance”,1

데이터형:|

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

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

예:“IterationLimit”,1 e8

데이터형:|

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

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

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

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

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

예:依照“KKTTolerance”,1

데이터형:|

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

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

예:“ShrinkagePeriod”,1000年

데이터형:|

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

모두 축소

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

  • “没有”-최적화하지않습니다。

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

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

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

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

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

참고

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

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

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

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

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

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

  • 标准化- - - - - -fitcsvm“真正的”“假”중에서탐색을수행합니다。

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

负载fisheririsParams =超参数(“fitcsvm”量,物种);参数(1)。Range = [1e-4,1e6];

参数个数OptimizeHyperparameters의값으로전달합니다。

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

예제는支持向量机분류기최적화하기항목을참조하십시오。

예:“汽车”

최적화에사용할옵션으로,“HyperparameterOptimizationOptions”와함께구조체가쉼@ @로구분되어지정됩니다。이marketing수는OptimizeHyperparameters이름-값쌍의通讯录수의효과를수정합니다。이구조체에포함된모든필드는선택사항입니다。

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

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

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

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

“bayesopt”
AcquisitionFunctionName

  • “expected-improvement-per-second-plus”

  • “expected-improvement”

  • “expected-improvement-plus”

  • “expected-improvement-per-second”

  • “lower-confidence-bound”

  • “probability-of-improvement”

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

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 목적함수실행의최대횟수입니다。 “bayesopt”또는“randomsearch”의 경우30.이고,“gridsearch”의경우그리드전체입니다。
MaxTime

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

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

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

  • 0-반복` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `

  • 1-반복시

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

자세한내용은bayesopt详细的이름-값쌍의通讯录수를참조하십시오。

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

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

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

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

예:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)

데이터형:结构体

출력marketing수

모두 축소

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

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

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

제한 사항

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

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

세부 정보

모두 축소

상자제약조건

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

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

그람행렬(克矩阵)

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

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

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

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

Svm에서KKT상보성조건은다음과같습니다。

α 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은고차원예측변수공간(원래예측변수공간이아님)의원점에서데이터를분리하는것이목적이며,이상값감지에사용되는알고리즘입니다。

이알고리즘은이진분류를위한支持向量机의알고리즘과비슷합니다。목적은다음과같은쌍대문제@ @현식의크기를최소화하는것입니다。

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분류기가더좋습니다。

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

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

선형支持向量机점수함수는다음과같습니다。

f x x β + b

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

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

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

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

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

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

  • 분리가능한클래스rm경우,모든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。α에대응)이사용됩니다。선형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,그리고카루쉬-쿤-터커(kkt)상보성조건이적용됩니다。

  • 분리가불가능한클래스에대해목적은분리가능한클래스에대한목적과동일하되,모든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 ,그리고KKT상보성조건이적용됩니다。G (xk, xj)는그람행렬(克矩阵)의소입니다。결과로나타나는점수함수는다음과같습니다。

f x j 1 n α j y j G x x j + b

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

  • 데이터세트가크지않다면항상예측변수를指导书준화하도록하십시오(标准化참조)。@ @ @ @ @ @ @ @。

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

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

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

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

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

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

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

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

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

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

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

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

알고리즘

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

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

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

  • 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 rm클래스에대응되는관측값을제거합니다。

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

    w j w j j k w j p c k

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

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

    C j n C 0 w j

    n은훈련` ` ` `본크기이고0은초기상자제약조건이며(“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셀형배열이됩니다。

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

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

    • X속성은훈련데이터를원래입력된대로저장하고가변수는포함하지않습니다。입력값이테이블marketing경우,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 ν

참고 문헌

[1]克里斯汀尼,N.和J. C.肖-泰勒。支持向量机和其他基于核的学习方法简介。万博1manbetx英国剑桥:剑桥大学出版社,2000年。

[2]范,r.e。,林志信。陈和c - j。林。“使用二阶信息训练支持向量机的工作集选择。”万博1manbetx机器学习研究,Vol. 6, 2005, pp. 1889-1918。

哈斯蒂、T.、R.蒂布谢拉尼和J.弗里德曼。统计学习的要素,第二版。纽约:施普林格,2008。

[4]凯克曼V. -M。黄和M.沃格特。从庞大数据集训练核心机器的迭代单数据算法:理论和性能。万博1manbetx支持向量机:理论与应用。王立波编辑,255-274。柏林:斯普林格出版社,2005年。

[5]肖科普夫,B. J. C.普拉特,J. C.肖-泰勒,A. J.斯莫拉和R. C.威廉姆森。“估算高维分布的支持度”万博1manbetx神经第一版。,Vol. 13, Number 7, 2001, pp. 1443–1471.

[6]肖科普夫,B.和A.斯莫拉。核学习:支持向量机,正则化,优化及超越,自适应万博1manbetx计算和机器学习。马萨诸塞州剑桥:麻省理工学院出版社,2002年。

확장 기능

R2014a에개발됨