主要内容

templateSVM

金宝app支持向量机模板

描述

例子

t= templateSVM ()返回一个支持向量机(金宝appSVM)学习者模板适用于训练纠错输出编码(ECOC)多级模型。

如果你指定一个默认模板,那么软件培训期间所有输入参数使用默认值。

指定t二进制的学习者,或一分之一组二进制学习者fitcecoc训练一个ECOC多级分类器。

例子

t= templateSVM (名称,值)返回一个指定的一个或多个模板额外的选项名称-值对参数。

例如,您可以指定箱约束,内核函数,或者预测是否规范。

如果你显示t在命令窗口中,那么所有的选择出现空([]使用名称-值对),除了那些你指定参数。在培训期间,软件使用空选项的默认值。

例子

全部折叠

使用templateSVM指定一个默认的支持向量机模板。

t = templateSVM ()
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解算器:“StandardizeData: [] SaveSupportVectors: [] VerbosityLevel:[]版本:2金宝app方法:“支持向量机”类型:“分类”

模板对象的所有属性都是空的,除了方法类型。当你通过t训练函数,软件填写空的属性与各自的默认值。例如,软件填充KernelFunction财产与“线性”。其他默认值的详细信息,请参见fitcsvm

t是一个计划,一个支持向量机学习,没有计算发生在你指定它。你可以通过tfitcecoc为ECOC指定二进制学习者SVM多类学习。然而,默认情况下,fitcecoc使用默认的SVM二进制学习者。

创建一个默认的支持向量机中使用的模板fitcecoc

加载费雪的虹膜数据集。

负载fisheriris

为支持向量机二元分类器创建一个模板,并指定使用高斯核函数。

t = templateSVM (“KernelFunction”,“高斯”)
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“高斯”KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解算器:“StandardizeData: [] SaveSupportVectors: [] VerbosityLevel:[]版本:2方法:“支金宝app持向量机”类型:“分类”

模板对象的所有属性都是空的,除了DistributionNames,方法,类型。训练时,软件填写空的属性与各自的默认值。

指定t作为一个二进制学习者ECOC多级模型。

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

Mdl是一个ClassificationECOC多类分类器。默认情况下,软件培训Mdl使用one-versus-one编码设计。

显示分类(resubstitution)误分类错误。

L = resubLoss (Mdl,“LossFun”,“classiferror”)
L = 0.0200

当你训练一个ECOC模型与线性SVM二进制学习者,fitcecoc清空了α,金宝appSupportVectorLabels,金宝appSupportVectors二进制学习者默认的属性。你可以选择而不是保留支持向量和相关值,然后从模型后丢弃。金宝app

加载费雪的虹膜数据集。

负载fisheririsrng (1);%的再现性

火车ECOC模型使用整个数据集。指定适当保留支持向量通过SVM模板。金宝app

t = templateSVM (“Save金宝appSupportVectors”,真正的);MdlSV = fitcecoc(量、种类、“学习者”t);

MdlSV是一个培训ClassificationECOC模型与线性SVM二进制学习者。默认情况下,fitcecoc实现了一个one-versus-one编码设计,这就需要三个二进制三级学习的学习者。

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

α=细胞(3,1);α{1}= MdlSV.BinaryLearners {1} .Alpha;α{2}= MdlSV.BinaryLearners {2} .Alpha;α{3}= MdlSV.BinaryLearners {3} .Alpha;α
α=3×1单元阵列{3 x1双}{3 x1双}{23 x1双}

α是一个3×1单元阵列存储的估计价值 α

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

Mdl = discard金宝appSupportVectors (MdlSV);

Mdl类似于MdlSV,除了α,金宝appSupportVectorLabels,金宝appSupportVectors属性的所有线性SVM二进制学习者是空的([])。

areAllEmpty = @ isempty ([x (x)。αx。金宝appSupportVectors x.SupportVectorLabels]);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小于5%MdlSV

减少内存使用压实Mdl然后清理MdlMdlSV从工作空间。

CompactMdl =紧凑(Mdl);清晰的MdlMdlSV;

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

idx = randsample(大小(量,1),1)
idx = 63
predictedLabel =预测(CompactMdl量(idx,:))
predictedLabel =1 x1单元阵列{“癣”}
trueLabel =物种(idx)
trueLabel =1 x1单元阵列{“癣”}

输入参数

全部折叠

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“BoxConstraint”, 0.1,“KernelFunction”、“高斯”,“标准化”,1指定了一个盒子的约束0.1,使用高斯(RBF)内核,标准化预测。

箱约束,指定为逗号分隔两人组成的“BoxConstraint”和积极的标量。

看到下面成了学习,软件总是设置框约束1

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

例子:“BoxConstraint”, 100年

数据类型:|

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

如果CacheSize“最大”软件储备足够的内存,那么整个n——- - - - - -n格拉姆矩阵

如果CacheSize是一个积极的标量,那么软件储备CacheSizemb的内存用于训练模型。

例子:“CacheSize”、“最大”

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

国旗剪辑α系数,指定为逗号分隔组成的“ClipAlphas”,要么真正的

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

价值 描述
真正的 在每个迭代中,如果αj0或接近附近是吗Cj,然后用MATLAB®αj0或Cj,分别。
MATLAB优化期间不会改变α系数。

MATLAB商店的最终值αα训练支持向量机模型的属性对象。

ClipAlphas会影响到SMO, ISDA收敛。

例子:“ClipAlphas”,假的

数据类型:逻辑

对上部和下部之间的梯度差异违规者通过序列最小优化算法(SMO)或迭代单一的数据(ISDA),指定为逗号分隔组成的“DeltaGradientTolerance”和一个负的标量。

如果DeltaGradientTolerance0,那么软件不使用梯度差异的宽容来检查优化收敛。

默认值是:

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

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

例子:依照“DeltaGradientTolerance”, 1

数据类型:|

可行性差距宽容了SMO或ISDA,指定为逗号分隔组成的“GapTolerance”和一个负的标量。

如果GapTolerance0,那么软件不使用公差检查的可行性差距优化收敛。

例子:依照“GapTolerance”, 1

数据类型:|

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

无论软件返回训练模型优化程序成功地收敛。Mdl.ConvergenceInfo包含聚合信息。

例子:“IterationLimit”, 1 e8

数据类型:|

核函数用于计算的元素格拉姆矩阵,指定为逗号分隔两人组成的“KernelFunction”和核函数名称。假设G(xj,xk)是元素(j,k)的格拉姆矩阵,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的道路。

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

例子:“KernelFunction”、“高斯”

数据类型:字符|字符串

内核补偿参数,指定为逗号分隔组成的“KernelOffset”和一个负的标量。

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

默认值是:

  • 0如果解决SMO(即设置“规划求解”、“SMO的)

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

例子:“KernelOffset”, 0

数据类型:|

内核尺度参数,指定为逗号分隔组成的“KernelScale”“汽车”或积极的标量。预测软件将所有元素的矩阵X的价值KernelScale。然后,软件应用适当的内核规范计算格拉姆矩阵。

  • 如果您指定“汽车”,那么软件使用启发式程序选择合适的比例因子。这种启发式程序使用二次抽样,所以估计可以改变从一个调用到另一个。因此,为了繁殖的结果,设置一个随机数种子使用rng前培训。

  • 如果您指定KernelScale例如,和你自己的内核函数“KernelFunction”、“内核”,那么软件将抛出一个错误。你必须申请比例内内核

例子:“KernelScale”、“汽车”

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

Karush-Kuhn-Tucker(马)互补条件违反宽容,指定为逗号分隔组成的“KKTTolerance”和一个负的标量。

如果KKTTolerance0,然后软件不使用马互补条件违反公差检查优化收敛。

默认值是:

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

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

例子:依照“KKTTolerance”, 1

数据类型:|

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

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

例子:“NumPrint”, 500年

数据类型:|

预计比例的训练数据中的异常值,指定为逗号分隔组成的“OutlierFraction”和一个数字标量区间[0,1)。

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

  • 两种学习的软件实现强劲的学习。换句话说,软件试图删除100 *outlierfraction%的观察时,优化算法是收敛的。删除观察对应梯度大的大小。

  • 看到下面成了学习,软件术语,找到一个合适的偏见outlierfraction观察的训练集有负的成绩。

例子:“OutlierFraction”, 0.01

数据类型:|

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

如果你设置“PolynomialOrder”KernelFunction不是多项式的,那么软件将抛出一个错误。

例子:“PolynomialOrder”, 2

数据类型:|

商店的支持向金宝app量,其标签,和估计α结果模型的系数作为属性,指定为逗号分隔组成的“Save金宝appSupportVectors”真正的

如果Save金宝appSupportVectors真正的,由此产生的模型存储支持向量金宝app金宝appSupportVectors财产,他们的标签金宝appSupportVectorLabels财产,估计α系数的α财产的紧凑,SVM的学习者。

如果Save金宝appSupportVectorsKernelFunction“线性”,由此产生的模型并不存储支持向量和相关估计。金宝app

减少内存消耗,紧凑的SVM模型,指定Save金宝appSupportVectors

线性支持向量机的二进制学习者ECOC模型,默认值是。否则,默认值是真正的

例子:“Save金宝appSupportVectors”,真的

数据类型:逻辑

设置迭代次数减少之间的活跃,指定为逗号分隔组成的“ShrinkagePeriod”和一个非负整数。

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

例子:“ShrinkagePeriod”, 1000年

数据类型:|

优化程序,指定为逗号分隔组成的“规划求解”在这个表和一个值。

价值 描述
ISDA的 迭代算法(见单数据[30])
“L1QP” 使用quadprog(优化工具箱)来实现l通过二次规划1 soft-margin最小化。这个选项需要一个优化工具箱™许可证。更多细节,请参阅二次规划的定义(优化工具箱)
SMO的 序列最小优化(见[17])

默认值是ISDA的如果你设置“OutlierFraction”为两级学习,积极的价值SMO的否则。

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

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

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

  • 软件中心和尺度预测数据的每一列(X)的加权平均值和标准偏差列,分别(加权标准化的细节,请参阅算法)。MATLAB哑变量中包含的不规范数据列生成的分类预测。

  • 使用标准化的软件训练分类器预测矩阵,但商店unstandardized分类器中的数据属性X

例子:“标准化”,真的

数据类型:逻辑

冗长的层面上,指定为逗号分隔组成的“详细”0,1,或2。的价值详细的控制软件的优化信息显示在命令窗口并保存的信息结构Mdl.ConvergenceInfo.History

这个表总结了冗长级别选项可用。

价值 描述
0 软件不显示或保存融合信息。
1 软件显示诊断消息并保存每一个收敛标准numprint迭代,numprint名称-值对参数的值是“NumPrint”
2 软件显示诊断消息并保存在每一个迭代收敛标准。

例子:“详细”,1

数据类型:|

输出参数

全部折叠

SVM分类模板适用于训练纠错输出代码(ECOC)多级模型,作为一个模板对象返回。通过tfitcecoc指定如何创建ECOC的SVM分类器模型。

如果你显示t命令窗口,那么所有,未指定的选项出现空([])。然而,与相应的软件替换空选项默认值在训练。

提示

默认情况下,为了提高效率,fitcecoc清空了α,金宝appSupportVectorLabels,金宝appSupportVectors属性对所有线性SVM二进制学习者。fitcecoc列表β,而不是α,在模型中显示。

来存储α,金宝appSupportVectorLabels,金宝appSupportVectors,通过一个线性支持向量机模板,指定存储支持向量金宝appfitcecoc。例如,输入:

t = templateSVM (“Save金宝appSupportVectors”,真正的)Mdl = fitcecoc (X, Y,“学习者”t);

你可以把支持向量和相关值通过产生的金宝appClassificationECOC模型discard金宝appSupportVectors

引用

[1]Christianini, N。,J. C. Shawe-Taylor.介绍支持向量机和其他基于学习的方法金宝app。英国剑桥:剑桥大学出版社,2000年。

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

[3]Hastie, T。,R. Tibshirani, and J. Friedman.统计学习的元素,第二版。纽约:施普林格出版社,2008年。

[4]Kecman V。,t - m。黄,m·沃格特。“迭代单一数据训练算法内核机器从巨大的数据集:理论和性能。“在金宝app支持向量机:理论和应用程序。由脂肪编辑,255 - 274。柏林:斯普林格出版社,2005年版。

[5]Scholkopf B。,J. C. Platt, J. C. Shawe-Taylor, A. J. Smola, and R. C. Williamson. “Estimating the Support of a High-Dimensional Distribution.”神经第一版第7卷。13日,2001年,页1443 - 1471。

[6]Scholkopf B。答:Smola。学习与内核:支持向量机,正则化优化,自适应计算金宝app和机器学习。剑桥,麻州:麻省理工学院出版社,2002年。

版本历史

介绍了R2014b