主要内容

Templatesvm.

金宝app支持向量机模板

描述

例子

t= templateSVM ()返回适用于训练纠错输金宝app出代码(ECOC)多键模型的支持向量机(SVM)学习者模板。

如果指定默认模板,则软件在培训期间使用所有输入参数的默认值。

指定t作为二进制学习者,或者在一组二进制学习者中,在Fitcecoc.训练ECOC多类分类器。

例子

t= templatesvm(名称,值)返回一个模板,其中包含一个或多个名称值对参数指定的其他选项。

例如,您可以指定框约束,内核函数或是否标准化预测器。

如果你展示t,则所有选项显示为空([]),但使用名称-值对参数指定的除外。在培训期间,软件对空选项使用默认值。

例子

全部收缩

Templatesvm.指定默认的SVM模板。

t = templatesvm()
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解算器:" standzedata: [] SaveSuppo金宝apprtVectors: [] VerbosityLevel: [] Version: 2 Method: 'SVM' Type: 'classification'

模板对象的所有属性都为空,除了方法类型.当你通过t对于训练函数,软件填充了它们各自的默认值的空的属性。例如,软件填充凯恩机组财产与'线性'.有关其他默认值的详细信息,请参阅fitcsvm

t是SVM学习者的计划,在指定它时不会发生计算。你可以通过tFitcecoc.为Ecoc Multiclass学习指定SVM二进制学习者。但是,默认情况下,Fitcecoc.使用默认的SVM二进制学习器。

创建一个非默认的支持向量机模板Fitcecoc.

载入费雪的虹膜数据集。

负载渔民

为SVM二进制分类器创建模板,并指定使用高斯内核功能。

t = templateSVM ('骨箱''高斯')
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“高斯”KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解决方案:"标准化数据:[]SaveSupportVectors: []金宝app VerbosityLevel: [] Version: 2方法:'SVM'类型:'classification'

模板对象的所有属性都为空,除了分发名称方法, 和类型.培训时,软件将填充空属性,其中包含各自的默认值。

指定t作为ECOC多类模型的二元学习者。

Mdl = fitcecoc(量、种类、“学习者”t);

MDL.是A.ClassificationECOC多条分类器。默认情况下,软件列车MDL.使用一个与一个编码设计。

显示样本内(再替换)误分类错误。

L = resubLoss (Mdl,'lockfun'“classiferror”)
L = 0.0200.

当您使用线性SVM二进制学习者培训ECOC模型时,Fitcecoc.清空了Α金宝appSupportVectorLabels., 和金宝app支持监视器二进制学习器的默认属性。相反,您可以选择保留支持向量和相关值,然后从模型中丢弃它们。金宝app

载入费雪的虹膜数据集。

负载渔民rng (1);%的再现性

使用整个数据集列车ecoc模型。通过通过相应的SVM模板指定保留支持向量。金宝app

t = templateSVM ('save金宝appsupportVectors',真的);mdlsv = fitcecoc(meas,speies,“学习者”t);

mdlsv.是训练有素的ClassificationECOC模型与线性SVM二进制学习者。默认情况下,Fitcecoc.实现了一对一的编码设计,这需要三个二进制学习者进行三班学习。

访问估计 α (alpha)值使用点符号。

alpha = cell(3,1);alpha {1} = mdlsv.binarylearners {1} .alpha;alpha {2} = mdlsv.binarylearners {2} .alpha;alpha {3} = mdlsv.binarylearners {3} .alpha;α
alpha =3×1个单元阵列{3x1 double} {3x1 double} {23x1 double}

α是一个3×1个单元格数组,存储估计值 α

丢弃ECOC模型中的支持金宝app向量和相关值。

mdl = discard金宝appsupportvectors(mdlsv);

MDL.类似于mdlsv.,除了Α金宝appSupportVectorLabels., 和金宝app支持监视器所有线性SVM二进制学习者的属性是空的([]).

areAllEmpty = @ isempty ([x (x)。Αx。金宝app支持监视器x。金宝appSupportVectorLabels.]); cellfun(areAllEmpty,Mdl.BinaryLearners)
ans =3 x1逻辑阵列1 1 1

比较两个ECOC模型的大小。

var =谁(“Mdl”“MdlSV”);100 * (1 - var (1) .bytes / var (2) .bytes)
ANS = 4.7075.

MDL.大约比mdlsv.

通过压缩来降低内存使用情况MDL.然后清理MDL.mdlsv.从工作空间。

CompactMDL = Compact(MDL);清除MDL.mdlsv.

使用更有效的支持向量机模型预测训练数据的随机行标签。

IDX = RANDSAMPLE(大小(MEA,1),1)
Idx = 63.
predictedLabel =预测(CompactMdl量(idx,:))
predictedLabel =1 x1单元阵列{“癣”}
Truilabel =物种(IDX)
truilabel =1 x1单元阵列{“癣”}

输入参数

全部收缩

名称值对参数

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

例子:'boxconstraint',0.1,'ernelfunction','高斯','标准化',1指定一个框限制0.1,使用高斯(RBF)核函数,并对预测器进行标准化。

盒子约束,指定为逗号分隔的配对组成'boxconstraint'和正标量。

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

有关关系和算法行为的更多详细信息BoxConstraint成本事先的标准化, 和权重,请参阅算法

例子:“BoxConstraint”,100年

数据类型:双倍的|单身的

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

如果CacheSize“最大”,然后软件储备足够的内存以保持整个内存n——- - - - - -n格拉姆矩阵

如果CacheSize是一个正标量,然后是软件储备CacheSize用于训练模型的兆字节内存。

例子:“CacheSize”、“最大”

数据类型:双倍的|单身的|字符|细绳

标志到剪辑alpha系数,指定为逗号分隔的配对'clipalphas',要么真的或者

假设观察的alpha系数jαj和盒子的约束观察jCjj= 1,......,n, 在哪里n是训练样本大小。

价值 描述
真的 在每次迭代时,如果αj是接近0还是接近Cj,然后matlab.®αj到0或Cj,分别。
MATLAB在优化期间不会更改alpha系数。

Matlab存储最终价值αΑ培训的SVM模型对象的属性。

ClipAlphas会影响SMO和ISDA的收敛。

例子:“ClipAlphas”,假的

数据类型:逻辑

通过顺序最小优化(SMO)或迭代单数据算法(ISDA)获得的上部和下部违规者之间的梯度差异(ISDA),指定为包括逗号分隔的对'deltagradienttolerance'一个非负标量。

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

默认值为:

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

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

例子:'deltagrienttolerance',1e-2

数据类型:双倍的|单身的

通过SMO或ISDA获得的可行性差距耐受,指定为逗号分离的对组成'gaptolerance'一个非负标量。

如果GapTolerance0,则软件不使用间隙公差的可行性进行优化收敛性检查。

例子:'gaptolerance',1e-2

数据类型:双倍的|单身的

最大数量的数字优化迭代,指定为逗号分隔的对组成“IterationLimit”一个正整数。

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

例子:'iterationlimit',1e8

数据类型:双倍的|单身的

核函数用来计算的元素格拉姆矩阵,指定为逗号分隔的配对组成'骨箱'和内核函数名称。认为Gxjxk)是元素(jk)克矩阵,在哪里xjxkp-表示观测值的维向量jkX.该表描述了支持的内核函数名称及其函数形式。金宝app

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

G x j x k ) exp. - 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”、“高斯”

数据类型:字符|细绳

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

软件增加了Kerneloffset.到克矩阵的每个元素。

默认值为:

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

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

例子:'kerneloffset',0

数据类型:双倍的|单身的

内核尺度参数,指定为逗号分隔对组成'kernelscale'“汽车”或正标量。该软件划分预测器矩阵的所有元素X通过价值KernelScale.然后,软件应用合适的核范数来计算Gram矩阵。

  • 如果您指定“汽车”然后,软件使用启发式程序选择适当的比例因子。这种启发式程序使用分列,因此估计可能因对另一个呼叫而异。因此,要重现结果,请使用随机数种子使用RNG.在培训之前。

  • 如果您指定KernelScale例如,您自己的内核功能,“KernelFunction”、“内核”,则软件抛出错误。您必须在内部应用伸缩内核

例子:“KernelScale”、“汽车”

数据类型:双倍的|单身的|字符|细绳

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

如果kkttolerance.0,然后该软件不使用KKT互补条件违规公差来检查优化融合。

默认值为:

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

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

例子:'kkttolerance',1e-2

数据类型:双倍的|单身的

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

如果您指定'verbose',1'numprint',numprint,则该软件每次显示来自SMO和ISDA的所有优化诊断消息Numprint.命令窗口中的迭代。

例子:“NumPrint”,500年

数据类型:双倍的|单身的

预期比例的培训数据中的异常值,指定为逗号分隔对'OutlierFraction'和间隔中的数字标量[0,1)。

假设你设置了'OutlierFraction',OutlieSfraction, 在哪里outlierfraction是一个大于0的值。

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

  • 对于单级学习,该软件发现了适当的偏见术语,以便outlierfraction培训集中的观察结果具有负分数。

例子:'OutlierFraction',0.01

数据类型:双倍的|单身的

多项式内核功能订单,指定为逗号分隔对组成'polynomialOrder'一个正整数。

如果你设置了'polynomialOrder'凯恩机组不是'多项式',则软件抛出错误。

例子:“PolynomialOrder”,2

数据类型:双倍的|单身的

存储支持向量金宝app、它们的标签和估计值α系数作为所得模型的属性,指定为逗号分隔对组成'save金宝appsupportVectors'真的或者

如果Save金宝appSupportVectors真的,得到的模型将支持向量存储在金宝app金宝app支持监视器属性中的标签金宝appSupportVectorLabels.财产和估计α系数在ΑCompact,SVM学习者的财产。

如果Save金宝appSupportVectors凯恩机组'线性',生成的模型不存储支持向量和相关估计。金宝app

为了减少紧凑的支持向量机模型的内存消耗,指定Save金宝appSupportVectors

对于ecoC模型中的线性,SVM二进制学习者,默认值是.否则,默认值是真的

例子:'save金宝appsupportvectors',true

数据类型:逻辑

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

如果你设置了“ShrinkagePeriod”,0,然后软件不会缩小活动集。

例子:'shrinkateperiod',1000

数据类型:双倍的|单身的

优化例程,指定为逗号分隔对,由'求解'和这个表中的值。

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

默认值为ISDA的如果你设置了'OutlierFraction'对两堂课的学习有积极的价值SMO的否则。

例子:“规划求解”、“ISDA的

标志为标准化预测的数据,指定为逗号分隔的配对“标准化”真的1) 或者(0)

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

  • 软件中心并缩放预测器数据的每列(X)的加权列均值和标准差(加权标准化详情见算法).MATLAB没有标准化为分类预测器生成的虚拟变量列中包含的数据。

  • 该软件利用标准化的预测矩阵训练分类器,但将未标准化的数据存储在分类器属性中X

例子:“标准化”,真的

数据类型:逻辑

详细级别,指定为逗号分隔对组成'verbose'01, 或者2.的价值verb控制软件在命令窗口中显示的优化信息的数量,并将信息保存为要保存的结构mdl.convergenceinfo.history.

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

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

例子:'verbose',1

数据类型:双倍的|单身的

输出参数

全部收缩

SVM分类模板适用于训练纠错输出代码(ECOC)多种单件模型,作为模板对象返回。经过tFitcecoc.来指定如何为ECOC模型创建SVM分类器。

如果你展示t,则所有未指定的选项显示为空([]).但是,软件在培训期间将空选项替换为相应的默认值。

提示

默认情况下以及效率,Fitcecoc.清空了Α金宝appSupportVectorLabels., 和金宝app支持监视器所有线性SVM二进制学习者的属性。Fitcecoc.清单bet,而不是Α,显示在模型中。

储藏Α金宝appSupportVectorLabels., 和金宝app支持监视器,传递一个指定存储支持向量的线性SVM模板金宝appFitcecoc..例如,输入:

t = templateSVM ('save金宝appsupportVectors'Mdl = fitcecoc(X,Y,“学习者”t);

您可以通过传递结果来删除支持向量和相关金宝app值ClassificationECOC模型到discard金宝appSupportVectors

参考文献

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

[2]风扇,R.-e.,P.-h。陈和C.-J.林。“使用用于培训支持向量机的二阶信息的第二个订单信息进行工作选择。”金宝app机器学习研究杂志, 2005年第6卷,1889-1918页。

[3] Hastie,T.,R. Tibshirani和J. Friedman。统计学习的要素, 第二版。纽约:斯普林斯,2008年。

[4] Kecman V.,T. -M。黄,和M. Vogt。“巨大数据集训练内核机器的迭代单数据算法:理论与性能。”在金宝app支持向量机:理论与应用.由Lipo Wang编辑,255-274。柏林:Springer-Verlag,2005。

[5] Scholkopf,B.,J.C.C.C.Clatt,J.C. Shawe-Taylor,A. J. Smola和R. C. Williamson。“估计高维分布的支持。”金宝app神经第一版。,卷。13,第7号,2001号,第1443-1471页。

[6] Scholkopf, B.和A. Smola。核学习:支持向量机,正则化,优化和超越,自适应金宝app计算和机器学习.剑桥,马:2002年的麻省理工学院新闻。

在R2014B中介绍