万博1manbetx支持向量机模板
用templateSVM
指定一个默认的SVM模板。
t = templateSVM ()
T =用于分类SVM拟合模板。阿尔法:为0x1双] BoxConstraint:[] CacheSize的:[] CachingMethod: '' ClipAlphas:[] DeltaGradientTolerance:[]小量:[] GapTolerance:[] KKTTolerance:[] IterationLimit:[] KernelFunction: '' KernelScale:[]KernelOffset:[] KernelPolynomialOrder:[] NumPrint:[]女:[] OutlierFraction:[] RemoveDuplicates:[] ShrinkagePeriod:[]求解: '' StandardizeData:[] SaveSupportVectors:万博1manbetx[] VerbosityLevel:[]版本:2所述的方法:“SVM”类型:‘分类’
模板对象的所有属性,除了空方法
和类型
。当你通过t
对于训练函数,软件用它们各自的默认值填充空属性。例如,软件填充KernelFunction
与财产“线性”
。有关其他默认值的详细信息,请参见fitcsvm
。
t
是支持向量机学习器的计划,当指定它时不发生计算。你可以通过t
来fitcecoc
为ECOC多类学习指定支持向量机二进制学习器。然而,默认情况下,fitcecoc
使用默认SVM二进制学习者。
创建使用非默认模板SVMfitcecoc
。
加载费舍尔的虹膜数据集。
负载fisheriris
创建SVM二元分类模板,并指定要使用高斯核函数。
T = templateSVM('KernelFunction',“高斯”)
T =用于分类SVM拟合模板。阿尔法:为0x1双] BoxConstraint:[] CacheSize的:[] CachingMethod: '' ClipAlphas:[] DeltaGradientTolerance:[]小量:[] GapTolerance:[] KKTTolerance:[] IterationLimit:[] KernelFunction: '高斯' KernelScale:[] KernelOffset:[] KernelPolynomialOrder:[] NumPrint:[]女:[] OutlierFraction:[] RemoveDuplicates:[] ShrinkagePeriod:[]求解: '' StandardizeData:[] SaveSupportVectors:万博1manbetx[] VerbosityLevel:[]版本:2的方法:“SVM”类型:“分类”
模板对象的所有属性,除了空DistributionNames
,方法
和类型
。当上训练,该软件填补了各自的默认值的空属性。
指定t
作为ECOC多类模型的二元学习者。
MDL = fitcecoc(MEAS,物种,“学习者”t);
MDL
是一个ClassificationECOC
多类分类。默认情况下,软件列车MDL
使用一对一编码设计。
显示在样品中-(resubstitution)误分。
L = resubLoss(MDL,“LossFun”,'classiferror')
L = 0.0200
当你训练线性SVM二进制学习者的ECOC模型,fitcecoc
清空α
,万博1manbetxSupportVectorLabels
和万博1manbetxSupportVectors
默认二进位学习器的性质。您可以选择保留支持向量和相关值,然后在以后从模型中丢弃它们。万博1manbetx
加载费舍尔的虹膜数据集。
负载fisheririsRNG(1);%用于重现
使用整个数据集训练ECOC模型。指定通过传递适当的支持向量机模板来保留支持向量。万博1manbetx
T = templateSVM(“Save万博1manbetxSupportVectors”,真正的);MdlSV = fitcecoc(量、种类、“学习者”t);
MdlSV
是一个培训ClassificationECOC
模型与线性SVM二进制学习者。默认,fitcecoc
实现了一个一对一的编码设计,需要三个二进制学习者来进行三门课的学习。
访问估计 (阿尔法)使用点符号值。
阿尔法=细胞(3,1);阿尔法{1} = MdlSV.BinaryLearners {1}。阿尔法;阿尔法{2} = MdlSV.BinaryLearners {2}。阿尔法;阿尔法{3} = MdlSV.BinaryLearners {3}。阿尔法;α
阿尔法=3×1单元阵列{3x1双}{3x1双}{23x1双}
α
一个3×1的单元格数组是否存储的估计值
。
丢弃来自ECOC模型的支万博1manbetx持向量及相关的值。
MDL = discard万博1manbetxSupportVectors(MdlSV);
MDL
类似于MdlSV
,除了α
,万博1manbetxSupportVectorLabels
和万博1manbetxSupportVectors
所有线性支持向量机二值学习器的性质为空([]
)。
areAllEmpty = @(X)的isEmpty([x.Alpha x万博1manbetx.SupportVectors x.SupportVectorLabels]);cellfun(areAllEmpty,Mdl.BinaryLearners)
ans =3 x1逻辑阵列1 1 1
比较两个ECOC模型的大小。
var =谁(“铜牌”,'MdlSV');100 * (1 - var (1) .bytes / var (2) .bytes)
ANS = 4.8394
MDL
小于约5%MdlSV
。
通过压缩减少你的内存使用情况MDL
然后清除MDL
和MdlSV
从工作空间。
CompactMdl =紧凑(Mdl);清晰的MDLMdlSV;
使用更有效的SVM模型预测训练数据的随机行标签。
IDX = randsample(大小(MEAS,1),1)
idx = 63
predictedLabel =预测(CompactMdl量(idx,:))
predictedLabel =1x1的单元阵列{“癣”}
trueLabel =物种(idx)
trueLabel =1x1的单元阵列{“癣”}
的可选逗号分隔对名称,值
参数。的名字
参数名和值
是对应的值。的名字
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N
。
'BoxConstraint',0.1, 'KernelFunction', '高斯', '标准化',1
指定的盒子约束0.1
,使用高斯(RBF)核,并标准化预测器。
'的CacheSize'
- - - - - -缓存大小1000
(默认)|“最大”
|积极的标量缓存大小,指定为逗号分隔对所组成的'的CacheSize'
和“最大”
或正标量。
如果CacheSize
是“最大”
,然后软件就会保留足够的内存来保存整个内存n-通过-n格拉姆矩阵。
如果CacheSize
是正标量,那么软件储备呢CacheSize
兆字节的内存用于训练模型。
例:“CacheSize”、“最大”
数据类型:双
|单
|烧焦
|字符串
'ClipAlphas'
- - - - - -标记剪辑阿尔法系数真正
(默认)|假
标记来剪辑系数,指定为逗号分隔对所组成的'ClipAlphas'
,要么真正
要么假
。
假设α系数进行观察j是αj和观察箱约束j是Cj,j= 1,…,n,在那里n是训练样本的大小。
值 | 描述 |
---|---|
真正 |
在每次迭代中,如果αj接近0或接近Cj,然后用MATLAB®集αj到0或到Cj,分别。 |
假 |
MATLAB在优化过程中不会改变alpha系数。 |
MATLAB存储的最终值α在里面α
经过训练的SVM模型对象的属性。
ClipAlphas
可以影响SMO和ISDA的收敛。
例:“ClipAlphas”,假的
数据类型:逻辑
“DeltaGradientTolerance”
- - - - - -梯度差容限公差用于通过顺序最小优化(SMO)或迭代单数据算法(ISDA)中得到上下违反之间的梯度差,指定为逗号分隔的一对组成的“DeltaGradientTolerance”
和一个非负标量。
如果DeltaGradientTolerance
是0
,那么软件不使用的容差梯度差,检查最优化收敛。
默认值是:
1 e - 3
如果求解器是SMO(例如,您设置'求解', 'SMO'
)
0
如果求解器是ISDA(例如,您可以设置'求解', 'ISDA'
)
例:依照“DeltaGradientTolerance”, 1
数据类型:双
|单
'GapTolerance'
- - - - - -可行性间隙误差0
(默认)|非负标通过SMO或ISDA获得可行性间隙公差,指定为逗号分隔的一对组成的'GapTolerance'
和一个非负标量。
如果GapTolerance
是0
,然后软件不用可行性差容检验优化收敛性。
例:依照“GapTolerance”, 1
数据类型:双
|单
“IterationLimit”
- - - - - -数值优化迭代的最大数量1 e6
(默认)|正整数数值优化迭代的最大次数,指定为逗号分隔对所组成的“IterationLimit”
和一个正整数。
无论优化程序成功收敛的软件返回训练模型。Mdl.ConvergenceInfo
含有收敛信息。
例:“IterationLimit”, 1 e8
数据类型:双
|单
'KernelFunction'
- - - - - -核函数“线性”
|“高斯”
|“rbf”
|“多项式”
|函数名核函数用于计算的元素格拉姆矩阵,指定为逗号分隔的一对组成的'KernelFunction'
和一个内核函数名。假设G(xj,xk)是元素(j,k)的,其中xj和xk是p表示观测值的维向量j和k在X
。该表描述了受支持的内核函数名称及其函数形式万博1manbetx。
内核函数名 | 描述 | 式 |
---|---|---|
“高斯” 要么“rbf” |
高斯或径向基函数(RBF)核,默认为一类学习 |
|
“线性” |
线性内核,默认为两班学习 |
|
“多项式” |
多项式内核。用“PolynomialOrder”, 指定的阶多项式内核问 。 |
|
您可以设置自己的内核的功能,例如,内核
, 通过设置“KernelFunction”、“内核”
。的值内核
必须有这种形式。
功能G =内核(U,V)
U
是一个米-通过-p矩阵。列对应于预测变量,行对应于观察值。
V
是一个n-通过-p矩阵。列对应于预测变量,行对应于观察值。
G
是一个米-通过-n格拉姆矩阵一行中的U
和V
。
kernel.m
必须在MATLAB的路径。
避免对内核函数使用通用名称是一种很好的做法。例如,调用一个s型核函数'mysigmoid'
而不是“乙状结肠”
。
例:'KernelFunction', '高斯'
数据类型:烧焦
|字符串
“KernelOffset”
- - - - - -内核偏移参数内核偏移参数,指定为逗号分隔的一对组成的“KernelOffset”
和一个非负标量。
该软件增加了KernelOffset
到革兰氏矩阵的每个元素。
默认值是:
0
如果求解器是SMO(即,您设置'求解', 'SMO'
)
0.1
如果求解器是ISDA(即,您设置'求解', 'ISDA'
)
例:“KernelOffset”, 0
数据类型:双
|单
“KernelScale”
- - - - - -核心尺度参数1
(默认)|“汽车”
|积极的标量内核尺度参数,指定为逗号分隔的一对组成的“KernelScale”
和“汽车”
或正标量。该软件将预测矩阵中的所有元素X
通过价值KernelScale
。然后,软件应用适当的内核规范计算格拉姆矩阵。
如果您指定“汽车”
,那么软件选择使用启发式算法的适当比例因子。这种启发式过程使用二次抽样,所以估计可以从一个电话而异。因此,为了再现结果,使用设定的随机数种子RNG
前培训。
如果您指定KernelScale
和自己的内核的功能,例如,“KernelFunction”、“内核”
,然后软件抛出一个错误。您必须在内部应用伸缩内核
。
例:'KernelScale', '汽车'
数据类型:双
|单
|烧焦
|字符串
'KKTTolerance'
- - - - - -卡鲁什-库恩-塔克互补条件违反容忍Karush-库恩 - 塔克(KKT)互补条件违反公差,指定为逗号分隔的一对组成的'KKTTolerance'
和一个非负标量。
如果KKTTolerance
是0
,那么软件不使用KKT互补条件违反公差检查最优化收敛。
默认值是:
0
如果求解器是SMO(例如,您设置'求解', 'SMO'
)
1 e - 3
如果求解器是ISDA(例如,您可以设置'求解', 'ISDA'
)
例:'KKTTolerance',1E-2
数据类型:双
|单
'NumPrint'
- - - - - -优化诊断消息输出之间的迭代次数1000
(默认)|非负整数优化诊断消息输出之间的迭代数,指定为逗号分隔的一对组成的'NumPrint'
一个非负整数。
如果您指定“详细”,1
和'NumPrint',numprint
,然后软件显示来自SMO和ISDA的所有优化诊断消息numprint
迭代在命令窗口。
例:“NumPrint”, 500年
数据类型:双
|单
'OutlierFraction'
- - - - - -训练数据中异常值的期望比例0
(默认)|在区间数字标量[0,1)训练数据中离群值的期望比例,指定为由'OutlierFraction'
和在区间[0,1)的数值标量。
假设你让OutlierFraction, OutlierFraction
,在那里outlierfraction
是大于0的值。
对于两班学习,该软件工具强大的学习。换句话说,软件试图删除100*outlierfraction
%的意见时,优化算法收敛的。除去的观测对应于在幅度上大梯度。
对于单一课程的学习,软件会找到一个合适的偏差术语,例如outlierfraction
在训练组的意见有负分。
例:'OutlierFraction',0.01
数据类型:双
|单
“PolynomialOrder”
- - - - - -多项式核函数阶3.
(默认)|正整数多项式核函数的阶数,指定为逗号分隔对所组成“PolynomialOrder”
和一个正整数。
如果设置“PolynomialOrder”
和KernelFunction
不是“多项式”
,然后软件抛出一个错误。
例:“PolynomialOrder”, 2
数据类型:双
|单
“Save万博1manbetxSupportVectors”
- - - - - -存储支持向量万博1manbetx,它们的标签,以及估计α系数真正
|假
存储支持向量万博1manbetx,它们的标签,以及估计α系数所得到的模型的性质,指定为逗号分隔的一对组成的“Save万博1manbetxSupportVectors”
和真正
要么假
。
如果Save万博1manbetxSupportVectors
是真正
时,所得的模型存储在支持向量万博1manbetx万博1manbetxSupportVectors
财产,他们的标签万博1manbetxSupportVectorLabels
财产,和估计α在系数α
紧凑,SVM学习者的财产。
如果Save万博1manbetxSupportVectors
是假
和KernelFunction
是“线性”
,得到的模型不存储支持向量和相关估计。万博1manbetx
为了减少紧凑车型SVM内存消耗,指定Save万博1manbetxSupportVectors
。
对于线性,SVM二进制学习者在ECOC模型中,默认值是假
。否则,默认值是真正
。
例:“Save万博1manbetxSupportVectors”,真的
数据类型:逻辑
“ShrinkagePeriod”
- - - - - -活动集缩减之间的迭代次数0
(默认)|非负整数活动集的减少之间的迭代数,指定为逗号分隔的一对组成的“ShrinkagePeriod”
一个非负整数。
如果设置“ShrinkagePeriod”, 0
,那么软件不收缩的活动集。
例:'ShrinkagePeriod',1000
数据类型:双
|单
“标准化”
- - - - - -标记来标准化预测数据假
(默认)|真正
标志以规范的预测数据,指定为逗号分隔的一对组成的“标准化”
和真正
(1
) 要么假
(0)
。
如果设置“标准化”,真的
:
软件对预测数据的每一列进行中心和缩放(X
)的加权列平均值和标准差(有关加权标准化的详细信息,请参见算法)。MATLAB没有标准化包含在用于分类预测生成的虚拟变量列中的数据。
该软件使用的列车标准化预测矩阵分类,而是存储在分类属性的非标准化数据X
。
例:“标准化”,真的
数据类型:逻辑
“详细”
- - - - - -详细级别0
(默认)|1
|2
冗长级别,指定为逗号分隔的对,由“详细”
和0
,1
,或2
。的价值详细
控制软件在命令窗口中显示的优化信息的数量,并将信息保存为结构Mdl.ConvergenceInfo.History
。
此表总结了可用的详细级别选项。
值 | 描述 |
---|---|
0 |
该软件不显示或保存收敛信息。 |
1 |
该软件显示诊断信息,并保存收敛标准每numprint 迭代,其中numprint 是名称 - 值对参数的值'NumPrint' 。 |
2 |
该软件在每次迭代时显示诊断信息并保存收敛标准。 |
例:“详细”,1
数据类型:双
|单
默认情况下和效率,fitcecoc
清空α
,万博1manbetxSupportVectorLabels
和万博1manbetxSupportVectors
对所有线性SVM二进制学习者性质。fitcecoc
名单Beta版
,而不是α
,在模型中显示。
储藏α
,万博1manbetxSupportVectorLabels
和万博1manbetxSupportVectors
,传递一个指定存储支持向量的线性SVM模板万博1manbetxfitcecoc
。例如,输入:
T = templateSVM(“Save万博1manbetxSupportVectors”,真)MDL = fitcecoc(X,Y,“学习者”t);
您可以通过使所得除去支持向量及相关的值万博1manbetxClassificationECOC
模型discard万博1manbetxSupportVectors
。
[1] Christianini,N.,和J. C. Shawe-泰勒。介绍支持向量机和其他基于内核的学习方法万博1manbetx。英国剑桥:剑桥大学出版社,2000。
[2]球迷,R.-E。,林志信。陈,C.-J。"训练支持向量机使用二阶信息的工作集选择"。万博1manbetx机器学习研究杂志, 2005年第6卷,第189 - 1918页。
[3] Hastie的,T.,R. Tibshirani,和J.弗里德曼。统计学习的要素, 第二版。纽约:施普林格,2008年。
[4] Kecman V, t -M。和m·沃格特。从巨大的数据集训练内核机器的迭代单数据算法:理论和性能。“在万博1manbetx支持向量机:理论与应用。王立波编辑,255-274。柏林:斯普林格出版社,2005年版。
B.斯科普夫,J. C.普拉特,J. C.沙-泰勒,A. J.斯莫拉和R. C.威廉姆森。"估算高维分布的支持度"万博1manbetx神经COMPUT。,第13,7号,2001年,第1443至1471年。
B. Scholkopf和A. Smola。支持向量机,规范化,优化和超越,自适应计算和机万博1manbetx器学习:与内核学习。马萨诸塞州剑桥:麻省理工学院出版社,2002年。
您点击了对应于以下MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。