主要内容

fitcsvm

训练支持向量金宝app机分类器用于一类和二值分类

描述

fitcsvm训练或交叉验证支持向量机(SVM)模型,在低维或中维预测金宝app数据集上进行一类和两类(二进制)分类。fitcsvm金宝app支持使用核函数映射预测器数据,并支持顺序最小优化(SMO),迭代单数据算法(ISDA)或l目标函数最小化的二次规划软边距最小化。

为了训练二元分类的线性SVM模型上的高维数据集,即,其包括许多预测变量的数据集,使用fitclinear代替。

对于组合二进制支持向量机模型的多类学习,使用纠错输出码(ECOC)。有关更多详细信息,请参阅fitcecoc

要训练SVM回归模型,请参见fitrsvm对于低维和中等维的预测数据集,或fitrlinear用于高维数据集。

Mdl= fitcsvm (资源描述ResponseVarName返回一个金宝app支持向量机分类器Mdl使用表中包含的样本数据进行训练资源描述ResponseVarName变量的名字在吗资源描述包含一个类或两个类分类的类标签。

如果类标签变量只包含一个类(例如,一个1的向量),fitcsvm训练一个单类分类模型。否则,该函数将训练一个用于两类分类的模型。

Mdl= fitcsvm (资源描述公式返回使用表中包含的样本数据训练的SVM分类器资源描述公式是反应的解释模型和预测变量的子集资源描述适合使用Mdl

Mdl= fitcsvm (资源描述Y返回使用表中预测变量训练的SVM分类器资源描述和类别标签在矢量Y

例子

Mdl= fitcsvm (XY返回使用矩阵中的预测器训练的SVM分类器X和类别标签在矢量Y用于一类或二类分类。

例子

Mdl= fitcsvm (___名称,值除了前面语法中的输入参数外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定交叉验证的类型、错误分类的代价以及得分转换函数的类型。

例子

全部收缩

载入费雪的虹膜数据集。卸下萼片长度和宽度以及所有观察到setosa虹膜。

加载fisheriris第1 = ~ strcmp(物种,“setosa”);X =量(第1 3:4);y =物种(第1);

使用处理后的数据集训练支持向量机分类器。

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 =2x1电池{“癣”}{' virginica '}

第一节课(“多色的”)为负的类,和第二(“virginica”)是积极类。属性可以在训练期间更改类的顺序“类名”名称-值对的论点。

绘制数据的散点图,并圈出支持向量。金宝app

SV = SVMModel.金宝appSupportVectors;图gscatter(X(:,1),X(:,2),y)的保持情节(SV(:,1),SV(:,2),“柯”“MarkerSize”10)传说(“多色的”“virginica”“金宝app支持向量”)举行

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

支持向量金宝app是发生在或超出其估计的类边界上的观察结果。

属性在训练期间设置框约束,可以调整边界(以及支持向量的数量)金宝app“BoxConstraint”名称-值对的论点。

加载电离层数据集。

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

使用径向基核训练SVM分类器。让软件为内核函数找到一个尺度值。规范的预测。

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

SVMModel是一个培训ClassificationSVM分类器。

交叉验证支持向量机分类器。默认情况下,该软件使用10倍交叉验证。

CVSVMModel = crossval (SVMModel);

CVSVMModel是一个ClassificationPartitionedModel旨在分类器。

估计样本外误分类率。

classLoss = kfoldLoss (CVSVMModel)
classLoss = 0.0484

泛化率约为5%。

修改Fisher的虹膜数据集,将所有的虹膜分配到同一个类中。在修改后的数据集中检测离群值,并确定离群值的预期比例。

加载Fisher的虹膜数据集。删除花瓣长度和宽度。将所有虹膜视为来自同一类别。

加载fisheririsX = MEAS(:,1:2);Y =酮(大小(X,1),1);

使用修改后的数据集训练SVM分类器。假设观察5%的异常值。规范的预测。

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

SVMModel是一个培训ClassificationSVM分类器。默认情况下,该软件使用高斯核用于单类学习。

绘制的意见和决策边界。标志的支持向量的和金宝app潜在的异常值。

svInd = SVMModel.Is金宝appSupportVector;H = 0.02;%网格步长[X1,X2] = meshgrid(分钟(X(:,1)):H:MAX(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)色条;头衔(“{\bf虹膜离群点的一类支持向量机检测}”)包含(“花萼长度(厘米)”) ylabel (萼片宽(cm)的)传说(“观察”“金宝app支持向量”)举行

图中包含一个轴对象。坐标轴对象与标题空白我r s空白O u t l e r空白D e t e c t I O n空白v I空白O n e - c l s s空白s v M包含3线,类型的对象轮廓。这些对象表示观察,支持向量。金宝app

发生的边界将数据的其余部分分离所述异常值,其中轮廓值是0

验证在交叉验证的数据中,得分为负的观测值的比例接近5%。

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

创建模型的散点图fisheriris数据集。将绘图中的网格坐标视为来自数据集分布的新观察值,并通过将坐标分配给数据集中的三个类中的一个来找到类边界。

载入费雪的虹膜数据集。使用花瓣的长度和宽度作为预测因素。

加载fisheririsX =量(:,3:4);Y =物种;

检查数据的散点图。

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

图中包含一个轴对象。该轴对象的标题空白S ct t e r e D i g r m blank of blank i r i S blank m e u r e t S包含3个对象的类型行。这些物品代表着维珍卡。

数据包含三个类,其中一个与其他类是线性可分的。

为每一个类:

  1. 创建逻辑向量(indx)指示观察结果是否属于类的成员。

  2. 训练一个支持向量机分类器使用预测数据和indx

  3. 将分类器存储在单元格数组的单元格中。

定义类顺序。

SVMModels =细胞(3,1);类=独特(Y);rng (1);%的再现性为了j = 1:numel(classes) indx = strcmp(Y,classes(j))); / /索引为每个分类器创建二进制类SVMModels {j} = fitcsvm (X, indx“类名”,[假-真],“标准化”,真的,...“KernelFunction”'RBF'“BoxConstraint”1);结尾

SVMModels是一个3 × 1单元格数组,每个单元格包含一个ClassificationSVM分类器。对于每个小区,正类是setosa,云芝和锦葵,分别。

在图中定义一个精细的网格,并将坐标视为来自训练数据分布的新观测值。使用每个分类器估计新观测值的分数。

d = 0.02;[x1Grid,x2Grid] = meshgrid(分钟(X(:,1)):d:最大(X(:,1)),...min (X (:, 2)): d:马克斯(X (:, 2)));xGrid = [x1Grid (:), x2Grid (:));N =大小(xGrid, 1);成绩= 0 (N,元素个数(类));为了j = 1:numel(classes) [~,score] = predict(SVMModels{j},xGrid);分数(:,j) =分数(:,2);%第二列包含正面类得分结尾

每一行的分数包含三个分数。分数最大的元素的索引就是新类观察最有可能所属的类的索引。

将每一个新的观察结果与给出最大值的分类器关联起来。

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

根据相应的新观察对象所属的类别,在plot区域中添加颜色。

图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 (6) = gscatter (X (: 1), (:, 2), Y);标题('{\bf虹膜分类区域}');包含('花瓣长度(cm)');ylabel (“花瓣宽度(cm)”);传奇(h, {“setosa地区”“杂色的地区”“virginica地区”...“观察setosa”的观察到的多色的“观察virginica”},...“位置”“西北”);轴抓住

图中包含一个轴对象。标题为空白I r I s空白C l s I t o s空白r的轴对象包含6个类型行对象。这些物体分别代表刚毛区、花色区、刚毛区、观测到的刚毛区、观测到的花色区、观测到的刚毛区。

超参数自动优化使用fitcsvm

加载电离层数据集。

加载电离层

通过使用自动超参数优化,找到最小化五倍交叉验证损失的超参数。为了重现性,设置随机种子并使用“expected-improvement-plus”采集功能。

rng默认的Mdl = fitcsvm (X, Y,'OptimizeHyperparameters'“汽车”...“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”...“expected-improvement-plus”)))
|==================================================================================================================================================================Iter |评估|目标|目标| Sofar | Sofar | Boxelscale | |结果|第1244号よ124?????124???????????????????????????????????????????????????????????????????第第第四方方方方第第第第第第第第第四方方方第第============取取取取取取取取取取取取取第第========================第第第第第第第第第第第第第第第第第第第=====================第第第第第第第第第第第第第第第第第第第第第========================第第第第第第第第第第第===第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第第| 0.35897 | 0.13787 | 0.25926 | 0.26547 | 0.036335 | 5.5755 | 3 |最佳| 0.13105 | 6.0486 | 0.13105 12488 | 0.002147 0 | 0.002357 | 4 |接受|0.0 0.0 0 0.35897 7 0.0 0 0.0 0 0.38897 7 0.0 0 0.10 10 10 5.1259 | 98.6212400 0 0 0.7 7 7 7 7 0.0 0 0 0 0.0 0 0 0.0 0 0 0 0.0 0 0 0 0 0.0 0 0 0 0 0.10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 5 5 5 5 5 5124912444 4 4 4 4 5 5\124;;;;;;;;;;;;接受0 0 0 0 0.5 5 5124四四四四四四四四0 0.6 0 0.1212400.12124周四周四周四周四周四周四周四;接受0 0.12\124周四周四周四周四;接受0 0.6 0.12124周四周四周四周四;接受0 0.1212445 5 512441.12821 | 8.1315 | 0.12821 | 0.12824 | 0.0010563 | 0.0022307 | 8 |接受| 0.1339 | 10.169 | 0.12821 | 0.13025 | 0.0010113|0.0.0 0 0.0 0 0.0 0 0.0026572124周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周五周五周五周五周五周五周五周五周五周五周五周五0.0 0.0 0 0.0 0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 12 17 17周日周日周日周日周日周日周日周日周日周日周日0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 12 12 12 17 17 17 17 17 17周日周日周日周日周日周日周日周日周日周日周日周日0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.41142 | 12 |接受| 0.35897 | 0.26527 | 0.12821 | 0.12951 | 468.37 | 750.25 | 13 |接受| 0.19088 |15.8 0 0.8 0 0.8 0 0.8 0 0.8 7 7 7.7 7 7 7 7 7 7 7 7 7 7 7 0.10 9124周四周四周四周四周四0.8 8 0 0 0.8 7 7 7 7.8 8 8 7 7 7 0.8 7 7 7 7 7 7 7 7 7 7 7 0.7 7 7 7 7 7 7 7 7 7 0.12 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0.10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9124周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四接受接受接受接受接受周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四周四接受接受接受接受接受0 0 0.10.10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0.12821 | 0.12969 | 0.079463 | 0.02889 | 17 |接受| 0.12821 | 2.7241 | 0.12821 12479 | 0.019736 | 0.0093692 | 18|接受0.1240 0.1240 0 0.周四周四接受0.1420 0.1424 4 4 4 4 4 4 4 4 4 4 4 0.周四周四周四接受0.0 0.01752412444 4 4 4 4 4 4 4 4 4 0.14245 12400 0.244 4 4 4 4 4 4 4 0.0 0 0.35985 5 5 0.0.35985 5 5 5 5 0.285 5 5 5 5 5 5 0 0.288 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0.1285 5 5 5 0 0 0 0 0.1240 0.1240 0 0 0 0.1240 0 0.1240 0 0 0 0 0 0 0.1240 0 0 0 0 0 0 0.1240 0 0 0 0 0.1240 0 0 0 0 0 0 0.1240 0 0 0 0 0 0 0 0 0 0 0 0 0.13148 \\12400 0 0.13148\124====================================================================================================================================================================================国际热核实验堆评估目标|目标|最佳状态|最佳状态|框约束|核尺度| | | | |结果| | |运行时| | |(预计)第1244号?|;124????????124??????????????????????????????????????????????????????????????月月月第第第第四方方方方方方方第第第========================================================================第第第第第第第第第第第第========================第第第第第第第第第第第=====================第第第第第第第第第第第第第第第第===========================第第第第第第第第第第第第第第第第第第第第第第第第第第=================================第第第第第第第第第第第第第第1.1339 | 4.9856 | 0.12821 | 0.12953 | 0.0092066 | 0.0044777 | 23 |接受| 0.12821 | 4.6931 | 0.12821 12454 | 1.4193 | 0.069246 | 24 |接受0.13240 0 0.133 0 0.1339接受0.133 0 0 0.1339接受0.133 0 0 0.133 0 0 0 0 0 0 0 0 0 0.13249接受接受0.131712400 0 0 0 0.133 0 0 0 0.133 9 9 9 9 9 0.249 9 912400.249 9 9 9 0 0 0.12 9 912400 0 0 0 0 0 0 0 0 0.1299 9 9 9124周日周日周日周日周日周日0 0 0 0 0 0 0 0 0.29 9 9 9 9\124周四周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日的0 0 0.1712400 0.1712400.78;0 0.17周日周日周日周日周日周日周日周日周日周日周日周日周日周日周日,0.78;0 0.7812470 0.78;0 0.1812477周日周日周日周日周日周日周日周日| 4.0179 | 0.12821 | 0.1285 | 15.37 | 0.23218 | 28 |接受| 0.12821 | 3.2262 | 0.12821 | 0.1284 | 14.943 |0.24095 | 29 |接受| 0.13105 | 5.9446 | 0.12821 | 0.12839 | 0.75691 | 0.043713 | 30 |接受| 0.12821 | 1.9262 12421 12433 | 14.652 1246|

图中包含一个轴对象。标题为Min objective vs. Number of function evaluated的axis对象包含2个类型为line的对象。这些对象代表最小观测目标、最小估计目标。

图中包含一个轴对象。以目标函数模型为标题的轴对象包含线、面、轮廓等5个对象。这些对象表示观测点,模型均值,下一个点,模型最小可行值。

__________________________________________________________优化完成。30 MaxObjectiveEvaluations达到。总功能评价:30总的经过时间:187.4194秒总目标函数评估时间:163.2347最佳观察到的可行点:BoxConstraint KernelScale _____________ ___________ 0.0010563 0.0022307观测目标函数值= 0.12821估计目标函数值= 0.12958功能评估时间= 8.1315最佳估计可行点(根据型号):BoxConstraint KernelScale _____________ ___________ 17.832 0.26308估计目标函数值= 0.12833估计函数评估时间= 3.0229
MDL = ClassificationSVM ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'B' 的 'g'} ScoreTransform: '无' NumObservations:351个HyperparameterOptimizationResults:[1x1的BayesianOptimization]阿尔法:[71x1双]偏压:-20.5240 KernelParameters:[1x1的结构] BoxConstraints:[351x1双] ConvergenceInfo:[1x1的结构] IsSupportVector:[3金宝app51x1逻辑]求解: 'SMO' 的属性,方法

输入参数

全部收缩

用于训练模型的样本数据,指定为表。每一行的资源描述对应一个观察值,每一列对应一个预测变量。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。

或者,资源描述可以包含一列作为响应变量,一列作为观察权值。

  • 响应变量必须是一个类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元格数组。

    • fitcsvm金宝app仅支持一个类和两个类(二进制)分类。响应变量最多必须包含两个不同的类,或者必须使用一会名称-值参数。关于多课程学习,请参阅fitcecoc

    • 一个好的做法是使用一会名称-值参数。

  • 权值所在的列必须是数字向量。

  • 中的响应变量必须指定资源描述通过使用ResponseVarName公式并指定观测权值资源描述通过使用权重

    • 使用ResponseVarName- - - - - -fitcsvm使用其余变量作为预测器。中剩余变量的子集资源描述作为预测,使用指定的预测变量PredictorNames

    • 通过使用定义模型规范公式- - - - - -fitcsvm中变量的子集资源描述作为预测变量和响应变量,如中所述公式

如果资源描述不包含响应变量,则使用Y.响应变量的长度Y和行数资源描述必须是相等的。中变量的子集资源描述作为预测,使用指定的预测变量PredictorNames

数据类型:表格

中的响应变量名,指定为变量名资源描述

您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果响应变量Y存储为待定,则指定为“Y”.否则,软件将对所有列进行处理资源描述,包括Y,作为训练模型时的预测器。

response变量必须是一个分类数组、字符数组或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。如果Y是字符数组,则响应变量的每个元素必须对应于数组的一行。

方法指定类的顺序是一种好的实践一会名称-值参数。

数据类型:字符|一串

解释模型的响应变量和预测变量的子集,指定为字符向量或字符串标量的形式“Y ~ x1 + x2 + x3”.在本表格中,Y表示响应变量,和x1x2,x3表示预测变量。

中指定变量的子集资源描述作为训练模型的预测器,使用一个公式。如果你指定一个公式,那么软件不使用任何变量资源描述没有出现在公式

公式中的变量名必须在两个变量名资源描述Tbl.Properties.VariableNames)和有效的MATLAB®身份标识。您可以验证的变量名中资源描述通过使用isvarname函数。如果变量名无效,则可以使用matlab.lang.makeValidName函数。

数据类型:字符|一串

SVM模型训练到的类标签,指定为类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元数组。

  • fitcsvm金宝app仅支持一类和二类(二进制)分类。要么Y必须最多包含两个不同的类,或者必须使用一会名称-值参数。关于多课程学习,请参阅fitcecoc

  • 长度Y和行数资源描述X必须是相等的。

  • 如果Y是字符数组,则每个标签必须对应数组的一行。

  • 属性指定类的顺序是一个很好的实践一会名称-值对的论点。

数据类型:分类|字符|一串|逻辑|||细胞

SVM分类器训练到的预测数据,指定为数值矩阵。

每一行的X对应于一个观察(也称为实例或示例),每一列对应于一个预测器(也称为特性)。

长度Y和行数X必须是相等的。

按预测器在中出现的顺序指定它们的名称X, 使用'PredictorNames'名称-值对的论点。

数据类型:|

名称-值参数

指定可选的用逗号分隔的对名称,值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:fitcsvm (X, Y, KFold, 10日,“成本”,[0 2;1 0],“ScoreTransform”、“标志”)执行10倍交叉验证,对假阳性的惩罚是假阴性的两倍,并使用sign函数转换分数。
支持向量机的选择

全部收缩

箱约束,指定为逗号分隔的一对组成的“BoxConstraint”一个正标量。

对于单班学习,软件总是设置框约束为1

的关系和算法行为的更多细节BoxConstraint成本之前标准化,权重,请参阅算法

例子:“BoxConstraint”,100年

数据类型:|

核函数用来计算的元素革兰氏矩阵,指定为逗号分隔的一对组成的“KernelFunction”和一个内核函数名。假设Gxjxk)是元素(jk),其中xjxkp-表示观测值的维向量jkX.此表描述了支持的内核函数名和它们的功能形式金宝app。

核函数名称 描述 公式
“高斯”'RBF' 高斯或径向基函数(RBF)核,默认为单类学习

G x j x k 经验值 x j x k 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是一个——- - - - - -p矩阵。列对应于预测变量,行对应的观测。

  • V是一个n——- - - - - -p矩阵。列对应于预测变量,行对应的观测。

  • G是一个——- - - - - -n革兰氏矩阵的行UV

kernel.m必须在MATLAB路径上。

避免为内核函数使用通用名称是一个很好的实践。例如,调用一个sigmoid内核函数“mysigmoid”而不是“乙状结肠”

例子:“KernelFunction”、“高斯”

数据类型:字符|一串

内核尺度参数,指定为逗号分隔对组成“KernelScale”“汽车”或者一个正标量。该软件对预测矩阵的所有元素进行了分割X以…的价值KernelScale.然后,软件应用合适的核范数来计算Gram矩阵。

  • 如果您指定“汽车”,采用启发式方法选择合适的比例因子。这个启发式过程使用子抽样,因此估计值可能因调用而异。因此,为了再现结果,设置随机数种子使用rng前培训。

  • 如果您指定KernelScale比如你自己的核函数,'KernelFunction', '仁',则软件抛出错误。您必须在内部应用伸缩内核

例子:“KernelScale”、“汽车”

数据类型:||字符|一串

多项式核函数阶数,指定为逗号分隔对组成“PolynomialOrder”一个正整数。

如果你设置“PolynomialOrder”KernelFunction不是多项式的,则软件抛出错误。

例子:“PolynomialOrder”,2

数据类型:|

内核偏移量参数,指定为逗号分隔对,由“内核偏移”一个非负标量。

软件增加了KernelOffset格伦矩阵的每个元素。

默认值是:

  • 0如果求解器是SMO(也就是你设置“规划求解”、“SMO的

  • 0.1如果解算器是ISDA(即,您设置“规划求解”、“ISDA的

例子:“KernelOffset”,0

数据类型:|

标志以规范的预测数据,指定为逗号分隔的一对组成的“标准化”真正的1) 或者错误的(0)

如果你设置“标准化”,真

  • 软件中心和衡量每个预测变量(X资源描述)的加权列均值和标准差。关于加权标准化的详细信息请参见算法.MATLAB没有标准化为分类预测器生成的虚拟变量列中包含的数据。

  • 该软件使用标准化的预测器训练分类器,但将非标准化的预测器以矩阵或表的形式存储在分类器属性中X

例子:“标准化”,真

数据类型:逻辑

优化例程,指定为逗号分隔对,由“规划求解”并在此表中的值。

价值 描述
'ISDA' 迭代单数据算法(参见[30]
“L1QP” 使用quadprog(优化工具箱)来实现l二次规划的软边距最小化。此选项需要一个Optimization Toolbox™许可证。有关更多详细信息,请参阅二次规划的定义(优化工具箱)
SMO的 顺序最小优化(参见[17]

默认值为'ISDA'如果你设置'OutlierFraction'对两堂课的学习有积极的价值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)看到下面成了一个学习

  • 0(大小(X, 1), 1)两级学习

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

数据类型:|

缓存大小,指定为逗号分隔对组成“CacheSize”“最大”或者一个正标量。

如果的CacheSize“最大”,则软件保留足够的内存来容纳整个n——- - - - - -n革兰氏矩阵

如果的CacheSize是正标量,则软件保留的CacheSize用于训练模型的兆字节内存。

例子:“CacheSize”、“最大”

数据类型:||字符|一串

标记剪辑alpha系数,指定为逗号分隔对组成“ClipAlphas”,要么真正的错误的

假设α系数进行观察jαj以及观察的方框约束jCjj= 1,…,n,在那里n为训练样本量。

价值 描述
真正的 在每次迭代中,ifαj是接近0还是接近Cj,然后MATLAB集合αj到0或到Cj,分别。
错误的 在优化过程中,MATLAB不会更改alpha系数。

的最终值用MATLAB存储αα训练的SVM模型对象的属性。

ClipAlphas可以影响SMO和ISDA收敛。

例子:“ClipAlphas”,假的

数据类型:逻辑

ν参数看到下面成了一个学习,指定为逗号分隔的一对组成的“怒”一个正标量。ν必须大于0在大多数1

ν控制在确保大多数训练示例都在正类和最小化得分函数中的权重之间的权衡。

例子:“怒”,0.25

数据类型:|

优化诊断消息输出之间的迭代次数,指定为由逗号分隔的对组成“NumPrint”和一个非负整数。

如果您指定“详细”,1'NumPrint',numprint,那么软件显示从SMO和ISDA每天都优化诊断消息numprint在命令窗口中的迭代。

例子:“NumPrint”,500年

数据类型:|

训练数据中期望异常值的比例,指定为逗号分隔对,由'OutlierFraction'以及区间[0,1]内的数字标量。

假设你设置OutlierFraction, OutlierFraction,在那里outlierfraction是一个大于0的值。

  • 对于两类学习,软件实现强劲的学习.换句话说,该软件试图删除100*outlierfraction%的观测值时,优化算法收敛。被移走的观测值对应的是幅度很大的梯度。

  • 对于单节课的学习,软件会找到一个合适的偏误术语outlierfraction训练集中的观测值为负。

例子:“OutlierFraction”,0.01

数据类型:|

标志与在训练数据中单一的观察,指定为逗号分隔的一对自由替换重复观测“RemoveDuplicates”真正的错误的

如果RemoveDuplicates真正的, 然后fitcsvm将训练数据中的重复观测替换为相同值的单个观测。单个观测值的权重等于相应删除的重复观测值的权重之和权重).

提示

如果数据集包含许多重复的观察值,则指定“RemoveDuplicates”,真的可大大缩短收敛时间。

数据类型:逻辑

详细程度,指定为逗号分隔对,由“详细”01,或2.的价值详细控制软件在命令窗口中显示的优化信息的数量,并将信息保存为要保存的结构Mdl.ConvergenceInfo.History

该表总结了可用的冗长级别选项。

价值 描述
0 软件不显示、不保存汇聚信息。
1 该软件显示诊断信息,并保存收敛准则numprint迭代,numprint名称-值对参数的值“NumPrint”
2 该软件显示诊断消息,并在每次迭代中保存收敛标准。

例子:“详细”,1

数据类型:|

其他分类选项

全部收缩

分类预测器列表,指定为该表中的值之一。

价值 描述
正整数向量

向量中的每一项都是一个指标值,表明相应的预测器是分类的。索引值在1到之间p,在那里p为用于训练模型的预测器数量。

如果fitcsvm使用输入变量的子集作为预测器,然后函数仅使用该子集对预测器进行索引。的CategoricalPredictors值不计算响应变量、观察权重变量或函数不使用的任何其他变量。

逻辑向量

一个真正的条目表示相应的预测器是分类。该矢量的长度是p

字符矩阵 矩阵的每一行都是一个预测变量的名称。名称必须与里面的条目相匹配PredictorNames.用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
字符向量的字符串数组或单元格数组 数组中的每个元素都是一个预测变量的名称。名称必须与里面的条目相匹配PredictorNames
“所有” 所有的预测都是绝对的。

默认情况下,如果预测器数据在表中(资源描述fitcsvm如果一个变量是逻辑向量、分类向量、字符数组、字符串数组或字符向量的单元格数组,则假设它是类别变量。如果预测数据是一个矩阵(Xfitcsvm假设所有的预测都是连续的。要确定任何其他预测作为分类预测,指定它们通过使用“CategoricalPredictors”名称-值参数。

对于确定的分类预测因子,fitcsvm创建使用两种不同的方案,这取决于分类变量是否是无序或有序虚拟变量。对于一个无序分类变量,fitcsvm为分类变量的每一级创建一个虚拟变量。对于有序分类变量,fitcsvm创建的虚拟变量比类别数量少一个。有关详细信息,请参见虚拟变量的自动创建

例子:“CategoricalPredictors”、“所有”

数据类型:||逻辑|字符|一串|细胞

用于两类学习的类名,指定为分类数组、字符数组或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。一会中的响应变量必须具有相同的数据类型资源描述Y

如果一会是字符数组,则每个元素必须与数组的一行相对应。

使用一会到:

  • 在培训期间指定课程的顺序。

  • 指定与类顺序相对应的任何输入或输出参数维的顺序。例如,使用一会指定尺寸的顺序成本或返回的分类分数的列顺序预测

  • 选择用于培训的类的子集。例如,假设集合中所有不同的类名Y[“a”、“b”、“c”].使用来自类的观察来训练模型“一个”“c”只是,指定“类名”,(“a”、“c”)

的默认值一会中响应变量中所有不同类名的集合资源描述Y

这种说法只对两类学习是有效的。

例子:“类名”,(“b”,“g”)

数据类型:分类|字符|一串|逻辑|||细胞

两类学习的误分类代价,指定为逗号分隔对,由“成本”方阵或结构数组。

  • 如果你指定了方阵成本真正的观察是, 然后成本(I,J)将一个点分类的成本是多少j.也就是说,行对应于真实类和列对应于预测类。要为相应的行和列指定类订单成本,亦指定一会名称-值对的论点。

  • 如果你指定了结构年代,则必须有两个字段:

    • S.ClassNames,它将类名包含为与类相同数据类型的变量Y

    • S.ClassificationCosts,其中包含行和列按顺序排列的代价矩阵S.ClassNames

如果你指定了一个成本矩阵,那么软件就会通过合并成本矩阵中描述的惩罚来更新先验概率。因此,代价矩阵重置为默认值。的关系和算法行为的更多细节BoxConstraint成本之前标准化,权重,请参阅算法

这种说法只对两类学习是有效的。

例子:“成本”,(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和训练期间响应变量。

    • PredictorNames一定是?的子集Tbl.Properties.VariableNames且不能包含响应变量的名称。

    • 默认情况下,PredictorNames包含所有预测变量的名称。

    • 一个好的实践是指定使用这两种方法进行训练的预测器PredictorNames公式,但不是两者都有。

例子:“PredictorNames”(“SepalLength”、“SepalWidth”,“PetalLength”,“PetalWidth”)

数据类型:一串|细胞

两类学习中每个类的先验概率,指定为逗号分隔对,由“之前”并在此表中的值。

价值 描述
“经验的” 类先验概率是类的相对频率Y
“统一” 所有类先验概率都等于1/K,在那里K为类数。
数值向量 向量中的每个元素是一个类的先验概率。根据命令元素Mdl。ClassNames或者使用一会名称-值对的论点。软件将元素的总和归一化1
结构

一个结构年代两个字段:

  • S.ClassNames将类名包含为与Y

  • S.ClassProbs包含相应的先验概率向量。该软件将矢量的元素归一化,使其和为1

如果你指定了一个成本矩阵,那么软件就会通过合并成本矩阵中描述的惩罚来更新先验概率。的关系和算法行为的更多细节BoxConstraint成本之前标准化,权重,请参阅算法

这种说法只对两类学习是有效的。

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

数据类型:字符|一串|||塑造

响应变量名,指定为字符向量或字符串标量。

  • 如果你提供Y,则可以使用ResponseName为响应变量指定名称。

  • 如果你提供ResponseVarName公式,则不能使用ResponseName

例子:“ResponseName”、“反应”

数据类型:字符|一串

分数转换,指定为字符向量、字符串标量或函数句柄。

此表总结了可用的字符向量和字符串标量。

价值 描述
“doublelogit” 1 / (1 +e–2x
“invlogit” 日志(x/ (1 -x)))
“ismax” 将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为0
“分对数” 1 / (1 +e- - - - - -x
“没有”“身份” x(转换)
“标志” 1x< 0
为0x= 0.
1为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),在那里n观察的次数在吗X资源描述

该软件可实现权重求和为各类的先验概率值。的关系和算法行为的更多细节BoxConstraint成本之前标准化,权重,请参阅算法

数据类型:||字符|一串

请注意

属性中不能同时使用任何交叉验证的名称-值参数'OptimizeHyperparameters'名称-值参数。可以为。修改交叉验证'OptimizeHyperparameters'只有使用“HyperparameterOptimizationOptions”名称-值参数。

交叉验证选项

全部收缩

标记来训练交叉验证的分类器,指定为逗号分隔对,由'Crossval''在'“关闭”

如果您指定'在',然后该软件训练10倍交叉验证分类器。

控件可以覆盖此交叉验证设置CVPartition坚持KFold,或忽略名称-值对的论点。您可以在同一时间只能使用一个交叉验证名称 - 值对参数创建一个交叉验证模型。

或者,稍后通过传递进行交叉验证Mdlcrossval

例子:“Crossval”,“on”

交叉验证分区,指定为cvpartition分区对象由cvpartition。分区对象指定交叉验证的类型以及训练集和验证集的索引。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或忽略

例子:假设你创建一个随机分区通过使用500个观察5倍交叉验证CVP = cvpartition(500, 'KFold',5)。然后,您可以使用指定交叉验证模型“CVPartition”,本量利

用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定“不吸墨性”,对,那么软件完成以下步骤:

  1. 随机选择和保留p * 100%的数据作为验证数据,并使用其余的数据训练模型。

  2. 将经过训练的小型模型存储在训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或忽略

例子:“坚持”,0.1

数据类型:|

在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定'KFold',K,那么软件完成以下步骤:

  1. 将数据随机划分为k集。

  2. 对于每一组,保留所述一组作为验证数据,并且使用其它训练模型k- 1集。

  3. 存储k紧凑,训练模型在k-by-1细胞载体训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或忽略

例子:“KFold”,5

数据类型:|

省略一交叉验证标志,指定为'在'“关闭”.如果您指定“Leaveout”,“上”,那么对于每一个n观察(在哪里n不包括遗漏的观测数据,观测数据的数量是否在NumObservations模型属性),软件完成以下步骤:

  1. 保留一个观测值作为验证数据,使用另一个来训练模型n- 1的观察。

  2. 存储n紧凑,训练模型在一个n-by-1细胞载体训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持KFold,或忽略

例子:“Leaveout”,“上”

收敛控制选项

全部收缩

对顺序最小优化(SMO)或迭代单数据算法(ISDA)得到的上、下违例点梯度差的容忍度,指定为逗号分隔对,由“DeltaGradientTolerance”一个非负标量。

如果DeltaGradientTolerance0,则该软件不使用梯度差公差来检查优化收敛性。

默认值为:

  • 1 e - 3如果解算器是SMO(例如,设置“规划求解”、“SMO的

  • 0如果解算器是ISDA(例如,您设置“规划求解”、“ISDA的

例子:依照“DeltaGradientTolerance”,1

数据类型:|

由SMO或ISDA获得的可行性间隙公差,指定为逗号分隔对组成“GapTolerance”一个非负标量。

如果GapTolerance0,那么软件不使用的可行性间隙误差检查最优化收敛。

例子:依照“GapTolerance”,1

数据类型:|

数值优化迭代的最大次数,指定为逗号分隔对组成'IterationLimit'一个正整数。

不管优化程序是否成功收敛,软件都会返回一个训练过的模型。Mdl。C在vergenceInfo包含聚合信息。

例子:“IterationLimit”,1 e8

数据类型:|

Karush-Kuhn-Tucker (KKT)互补条件违规容限,指定为逗号分隔对,由“KKTTolerance”一个非负标量。

如果KKTTolerance0,则该软件不使用KKT互补条件违例容差来检查优化收敛性。

默认值为:

  • 0如果解算器是SMO(例如,设置“规划求解”、“SMO的

  • 1 e - 3如果解算器是ISDA(例如,您设置“规划求解”、“ISDA的

例子:依照“KKTTolerance”,1

数据类型:|

活动集缩减之间的迭代次数,指定为由逗号分隔的对组成“ShrinkagePeriod”和一个非负整数。

如果你设置“ShrinkagePeriod”,0,则该软件不收缩活动集。

例子:“ShrinkagePeriod”,1000年

数据类型:|

Hyperparameter优化选项

全部收缩

为两类学习优化的参数,指定为逗号分隔的对,由'OptimizeHyperparameters'这些值之一:

  • '没有任何'- 不要优化。

  • “汽车”——使用{“BoxConstraint”、“KernelScale”}

  • '全部'-优化所有符合条件的参数。

  • 符合条件的参数名称的字符串数组或单元格数组。

  • 向量的optimizableVariable对象的输出hyperparameters

优化的尝试,以尽量减少交叉验证的损失(错误)fitcsvm通过改变参数。有关交叉验证丢失的信息,请参见分类损失.要控制交叉验证类型和其他方面的优化,请使用HyperparameterOptimizationOptions名称-值对的论点。

请注意

'OptimizeHyperparameters'重写使用其他名称-值参数指定的任何值。例如,设置'OptimizeHyperparameters'“汽车”原因fitcsvm对对应的超参数进行优化“汽车”选项并忽略超参数的任何指定值。

符合条件的参数fitcsvm是:

  • BoxConstraint- - - - - -fitcsvm在正值中搜索,默认在范围内按对数缩放(1 e - 3, 1 e3)

  • KernelScale- - - - - -fitcsvm在正值中搜索,默认在范围内按对数缩放(1 e - 3, 1 e3)

  • KernelFunction- - - - - -fitcsvm搜索中“高斯”“线性”,多项式的

  • PolynomialOrder- - - - - -fitcsvm在范围的整数中搜索(2、4)

  • 标准化- - - - - -fitcsvm搜索中“真正的”'错误的'

通过传递的向量来设置非默认参数optimizableVariable具有非默认值的对象。例如:

加载fisheririsparams = hyperparameters (“fitcsvm”量,物种);参数(1)。Range = [1e-4,1e6];

通过PARAMS作为价值OptimizeHyperparameters

默认情况下,迭代显示出现在命令行,并根据优化中超参数的数量显示绘图。对于优化和绘图,目标函数为误分类率。若要控制迭代显示,请设置详细领域“HyperparameterOptimizationOptions”名称-值参数。要控制情节,设置ShowPlots领域“HyperparameterOptimizationOptions”名称-值参数。

例如,请参见优化支持向量机分类器

这种说法只对两类学习是有效的。

例子:“OptimizeHyperparameters”、“汽车”

两类学习的优化选项,指定为一个结构。该参数修改OptimizeHyperparameters名称-值参数。结构中的所有字段都是可选的。

字段名 价值 默认的
优化器
  • 'bayesopt'- 使用贝叶斯优化。在内部,此设置来电bayesopt

  • 'gridsearch'-使用网格搜索NumGridDivisions每个维度值。

  • “randomsearch”- 在搜索中随机MaxObjectiveEvaluations点。

'gridsearch'搜索以随机的顺序,使用均匀采样,而不从电网更换。优化后,可以通过使用命令获得网格顺序表sortrows (Mdl.HyperparameterOptimizationResults)

'bayesopt'
AcquisitionFunctionName

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

  • “expected-improvement”

  • “expected-improvement-plus”

  • “预计-改善每秒”

  • “lower-confidence-bound”

  • “probability-of-improvement”

获取函数的名称包括每秒不会产生可重复的结果,因为优化依赖于目标函数的运行时间。获取函数的名称包括+修改自己的行为时,他们过度开发的区域。有关更多详细信息,请参阅采集功能类型

“expected-improvement-per-second-plus”
MaxObjectiveEvaluations 目标函数求值的最大次数。 30.为了'bayesopt'“randomsearch”,和整个网格'gridsearch'
MaxTime

时间限制,指定为正实标量。时间限制以秒为单位,用抽搐toc.运行时间可以超过MaxTime因为MaxTime不中断函数计算。

NumGridDivisions 为了'gridsearch',表示每个维度中值的数量。该值可以是一个给出每个维度值数量的正整数向量,也可以是适用于所有维度的标量。对于分类变量,该字段被忽略。 10
ShowPlots 指示是否显示绘图的逻辑值。如果真正的,该字段针对绘制迭代次数最好观察到的目标函数值。如果你使用贝叶斯优化(优化器'bayesopt'),则该域也绘制出最佳估计目标函数值。的最佳观测目标函数值和最佳估计目标函数值对应于BestSoFar(观察)BestSoFar (estim)。列的迭代显示,分别。您可以在属性中找到这些值ObjectiveMinimumTraceEstimatedObjectiveMinimumTraceMdl。HyperparameterOptimizationResults.如果问题包括一个或贝叶斯优化两种优化参数,然后ShowPlots还根据参数绘制目标函数的模型。 真正的
SaveIntermediateResults 表示是否保存结果的逻辑值优化器'bayesopt'.如果真正的,此字段将覆盖名为“BayesoptResults”在每次迭代中,变量是一个BayesianOptimization对象。 错误的
详细

显示在命令行:

  • 0-没有迭代显示

  • 1——迭代显示

  • 2-重复显示额外的信息

具体操作请参见bayesopt详细名称-值参数和示例优化分类适合使用贝叶斯优化

1
UseParallel 指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行时序的不可再现性,并行贝叶斯优化并不一定产生可再现的结果。有关详细信息,请参见平行的贝叶斯优化 错误的
重新分区

逻辑值指示是否在每次迭代重新对交叉验证。如果该字段为错误的,优化器使用单个分区进行优化。

设置真正的通常给出最稳健的结果,因为它考虑了分区噪声。然而,为了得到好的结果,真正的需要至少两倍的函数求值。

错误的
使用以下三个选项中的任意一个。
CVPartition 一个cvpartition对象创建的cvpartition “Kfold”,5如果您没有指定交叉验证字段
坚持 范围内的标量(0,1)表示坚持不懈的分数
肯福尔德 大于1的整数

这种说法只对两类学习是有效的。

例子:'HyperparameterOptimizationOptions',结构( 'MaxObjectiveEvaluations',60)

数据类型:塑造

输出参数

全部收缩

训练后的SVM分类模型,返回为ClassificationSVM模型对象或ClassificationPartitionedModel旨在模型对象。

如果您设置任何名称-值对参数KFold坚持忽略CrossVal,或CVPartition, 然后Mdl是一个ClassificationPartitionedModel旨在分类器。否则,Mdl是一个ClassificationSVM分类器。

要引用的特性Mdl,使用点符号。例如,输入Mdl。一个lpha在命令窗口中显示训练过的拉格朗日乘数。

限制

  • fitcsvm训练支持向量机分类器用于一类或二类学习应用。要使用包含两个以上类的数据来训练SVM分类器,请使用fitcecoc

  • fitcsvm金宝app支持低维和中维数据集。对于高维数据集,请使用fitclinear代替。

更多关于

全部收缩

框约束

一箱约束是控制最高刑罚实行保证金违规的意见,这有助于防止过度拟合(转正)的参数。

如果增加框约束,则支持向量机分类器分配的支持向量更少。金宝app然而,增加方框约束会导致更长训练时间。

格拉姆矩阵

集合的格拉姆矩阵n向量{x1, . .xnxjRp}是一个n——- - - - - -n矩阵(jk)定义为Gxjxk) = <ϕxjϕxk>,使用核函数转换的预测器的内积ϕ

对于非线性支持向量机,算法利用预测数据的行组成格拉姆矩阵X.双重形式化取代了观测值的内积X与相应的格拉姆矩阵元素(称为“内核技巧”)。因此,非线性支持向量机在变换后的预测空间中运行,找到一个分离的超平面。

卡鲁什-库恩-塔克互补条件

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= 0 for allj= 1,…,n

看到下面成了一个学习

一个级的学习,或无监督SVM,旨在从高维空间预测器(不是原始预测器空间)的原点分开的数据,并且是用于异常检测的算法。

算法类似于二值分类的支持向量机.目标是最小化对偶表达式

0.5 j k α j α k G x j x k

关于 α 1 ... α n 从属于

α j n ν

0 α j 1 总的来说j= 1,…,n.的价值Gxjxk)在元素中(jk) 的革兰氏矩阵

小值ν导致支持向量更少,因此,一个平金宝app滑、粗糙的决策边界。很大的价值ν导致更多的支持向量,因此,一金宝app个弯曲的,灵活的决策边界。的最优值ν应该足够大,以捕获数据的复杂性,并足够小,以避免过度训练。同时,0 <ν≤1。

有关更多详细信息,请参阅[5]

金宝app支持向量机

金宝app支持向量是与严格正估计相对应的观测值α1、……αn

对于给定的训练集,生成较少支持向量的支持向量机分类器是首选。金宝app

金宝app支持向量机的二进制分类

支持向量机二值分类算法搜索最优超平面,将数据分成两类。对于可分离类,最优超平面使a最大保证金(不包含任何观察的空间),这为积极类和消极类创造了边界。对于不可分割的类,其目标是相同的,但算法会对位于类边界错误一侧的每一个观察值的边缘长度施加惩罚。

线性SVM评分函数为

f x x β + b

在哪里:

  • x是一个观察(对应一行X).

  • 向量β包含定义的正交向量的超平面的系数(对应于Mdl。β).对于可分离数据,最优裕度长度为 2 / β

  • b偏差项(对应于Mdl。偏见).

的根源fx)定义了一个超平面。对于一个特殊的超平面,fz)为从点到点的距离z超平面。

算法搜索最大边距长度,同时保持观测值为正(y= 1)和- (y= -1)类分开。

  • 对于可分离类,目标是最小化 β 相对于该βbyjfxj)≥1,为所有j= 1,...,n.这是原始可分离类的形式化。

  • 对于不可分割的类,算法使用松弛变量(ξj)来惩罚目标函数的观测值超过了其类的边界。ξj= 0表示观察结果没有越过类的边界,否则ξj≥0。

    目标是最小化 0.5 β 2 + C ξ j 相对于该βb,ξj y j f x j 1 ξ j ξ j 0 总的来说j= 1,...,n,对于正标量箱约束C.这是不可分离类的原始形式化。

该算法采用拉格朗日乘子法对目标进行优化n系数α1、……αn(对应于Mdl。一个lpha).线性支持向量机的对偶形式如下:

  • 对于可分离类,最小化

    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均≥0j= 1,…,n,Karush-Kuhn-Tucker (KKT)互补条件

  • 对于不可分离类,除了附加条件外,其目标与可分离类相同 0 α j C 总的来说j= 1,...,n

得到的分数函数为

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

b 估计的偏差是和吗 α j j向量的估计 α j= 1,…,n.这样写,分数函数是免费的估计β作为原始形式化的结果。

支持向量机算法对一个新的观测进行分类z使用 标志 f z

在某些情况下,非线性边界将类分开。非线性支持向量机在一个变换的预测空间中工作,以找到一个最优的,分离超平面。

非线性支持向量机的对偶形式化是

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 0 α j C 总的来说j= 1,...,n和KKT条件互补。Gxkxj的元素革兰氏矩阵.得到的分数函数为

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

有关更多详细信息,请参阅理解支持向量机金宝app[1],[3]

提示

  • 除非您的数据集很大,否则总是尝试标准化预测器(参见标准化).标准化使得预测者对测量他们的尺度不敏感。

  • 的交叉验证是一个很好的实践KFold名称-值对的论点。交叉验证结果决定了SVM分类器的泛化程度。

  • 看到下面成了学习:

    • 名称-值对参数的默认设置α会导致长时间的训练。为了加快训练,集合α到一个主要由0年代。

    • 设置名称 - 值对参数ν接近于0以产生更少的支持向量,从而获得金宝app更平滑但粗糙的决策边界。

  • 支持向量的稀疏性是支持向金宝app量机分类器的一个理想特性。为了减少支持向量的数量,集合金宝appBoxConstraint一个很大的值。这个动作增加了训练时间。

  • 对于最佳训练时间,设置的CacheSize您的计算机允许的最高内存限制。

  • 如果您预期支持向量比训练集中的观测值要少得多,那么金宝app您可以使用名称-值对参数缩小活动集,从而显著加快收敛速度“ShrinkagePeriod”.这是指定一个很好的做法“ShrinkagePeriod”,1000年

  • 远离决策边界的重复观测不会影响收敛。然而,仅仅在决策边界附近出现一些重复的观测就会大大减慢收敛速度。为了加快收敛速度,指定“RemoveDuplicates”,真的如果:

    • 您的数据集包含许多重复的观察结果。

    • 您怀疑有一些重复的观察结果落在决策边界附近。

    为了在训练过程中维护原始数据集,fitcsvm必须临时存储独立的数据集:原始数据集和没有重复观测的数据集。因此,如果指定真正的对于包含少量重复的数据集,则fitcsvm消耗的内存几乎是原始数据的两倍。

  • 在训练模型之后,您可以生成C/ c++代码来预测新数据的标签。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介

算法

  • 支持向量机二值分类算法的数学公式见金宝app支持向量机的二进制分类理解支持向量机金宝app

  • <定义>,空字符向量(“”),空字符串(""), 和< >失踪值表示缺失的值。fitcsvm删除与缺失响应对应的整行数据。在计算总权重时(见下一条),fitcsvm忽略与至少缺少一个预测因子的观测相对应的任何权重。在平衡类问题中,这种行为会导致不平衡的先验概率。因此,观察框约束可能不相等BoxConstraint

  • fitcsvm删除权重为零或先验概率为零的观察值。

  • 对于两班学习,如果你指定的成本矩阵 C (见成本),然后软件更新类先验概率p(见之前)pc通过将处罚纳入 C

    具体地说,fitcsvm完成这些步骤:

    1. 计算 p c p C

    2. 正常化pc使更新后的先验概率总和为1。

      p c 1 j 1 K p c j p c

      K为类数。

    3. 将代价矩阵重置为默认值

      C 0 1 1 0

    4. 从零先验概率类对应的训练数据中去除观测值。

  • 对于两班学习,fitcsvm将所有观测权归一化(见权重)求和为1。然后,该函数对归一化权重进行重归一化,使其总和为观测所属类的更新先验概率。即观察的总权重j在课堂上k

    w j w j j k w j p c k

    wj是标准化的观测权值吗jpck更新的类先验概率是多少k(见以前的子弹)。

  • 对于两班学习,fitcsvm为训练数据中的每个观测值指定一个方框约束。观察框约束的公式j

    C j n C 0 w j

    n为训练样本量,C0在初始框约束(见“BoxConstraint”名称-值对参数)和 w j 观察的总权重是多少j(见以前的子弹)。

  • 如果你设置“标准化”,真“成本”“之前”,或“重量”名称-值对参数fitcsvm使用相应的加权平均值和加权标准差对预测进行标准化。也就是说,fitcsvm标准化预测jxj)使用

    x j x j μ j σ j

    μ j 1 k w k k w k x j k

    xjk是观察k(行)的预测j(列)。

    σ 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%的观察在训练数据中有负的分数。

    • 该软件实现了强劲的学习两级学习。换句话说,该软件试图删除100个p%的观测值时,优化算法收敛。被移走的观测值对应的是幅度很大的梯度。

  • 如果你的预测数据包含分类变量,那么软件通常对这些变量使用完全哑编码。该软件为每个类别变量的每一级创建一个虚拟变量。

    • PredictorNames属性存储每个原始预测变量名的一个元素。例如,假设有三个预测因子,其中一个是具有三个层次的分类变量。然后PredictorNames是包含预测变量原始名称的字符向量的1 × 3单元格数组。

    • ExpandedPredictorNames属性存储每个预测变量的一个元素,包括虚拟变量。例如,假设有三个预测因子,其中一个是具有三个层次的分类变量。然后ExpandedPredictorNames是一个包含预测变量和新的虚拟变量名称的字符向量的1 × 5单元格数组。

    • 同样,β属性存储每个预测器(包括虚拟变量)的一个beta系数。

    • 金宝appSupportVectors属性存储支持向量的预测值,包括虚拟变量金宝app金宝app支持向量和三个预测因子,其中一个是有三个层次的分类变量。然后金宝appSupportVectors是一个n5矩阵。

    • X属性将训练数据存储为原始输入,不包含虚拟变量。当输入是一个表时,X只包含用作预测列。

  • 对于表中指定的预测器,如果任何变量包含有序(有序)类别,软件将对这些变量使用有序编码。

    • 对于具有可变k软件创建了有序的关卡k- 1虚拟变量。的j第一个哑变量为–1对于以下级别j,+1对于水平j+ 1通过k

    • 存储在中的虚拟变量的名称ExpandedPredictorNames属性指示具有该值的第一级+1.软件商店k- 1虚拟变量的附加预测器名称,包括级别2、3、…k

  • 所有连接器实现l1 soft-margin最小化。

  • 对于单类学习,软件估计拉格朗日乘数,α1、……αn,这样

    j 1 n α j n ν

参考文献

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

[2]球迷,R.-E。,林志信。陈,C.-J。林。使用二阶信息进行训练支持向量机的工作集选择金宝app机器学习研究杂志,卷。6,2005年,第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神经第一版。,第13,7号,2001年,第1443至1471年。

[6] Scholkopf,B。,和A.斯莫拉岛。核学习:支持向量机,正则化,优化和超越,自适应金宝app计算和机器学习.麻省理工学院出版社,2002年。

扩展功能

介绍了R2014a