主要内容

重新开始

恢复训练支持向量机(SVM)分类器

描述

例子

UpdatedSVMModel=简历(SVMModelnumIter返回更新后的支持向量机(SVM)分类器UpdatedSVMModel通过训练SVM分类器SVMModelnumIter更多的迭代。就像SVMModel,更新后的SVM分类器为ClassificationSVM分类器。

重新开始时继续应用设置的培训选项SVMModel训练了fitcsvm

例子

UpdatedSVMModel=简历(SVMModelnumIter名称,值返回UpdatedSVMModel使用一个或多个名称-值对参数指定的附加选项。例如,您可以指定详细级别。

例子

全部折叠

训练一个SVM分类器,并有意地使求解器不能收敛到一个解上。然后恢复训练分类器,而不必重新启动整个学习过程。

加载电离层数据集。

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

训练SVM分类器。指定优化例程最多使用50次迭代。

SVMModel = fitcsvm (X, Y,“IterationLimit”, 50);DidConverge = SVMModel.ConvergenceInfo.Converged
DidConverge =逻辑0
原因= SVMModel.ConvergenceInfo.ReasonForConvergence
原因= ' NoConvergence '

DidConverge = 0指示优化例程没有收敛到解决方案上。原因说明了程序没有收敛的原因。因此,SVMModel为部分训练的SVM分类器。

恢复为另一个分类器训练SVM分类器1500迭代。

UpdatedSVMModel =简历(SVMModel, 1500);DidConverge = UpdatedSVMModel.ConvergenceInfo.Converged
DidConverge =逻辑1
原因= UpdatedSVMModel.ConvergenceInfo.ReasonForConvergence
原因= ' DeltaGradient '

DidConverge指示优化例程收敛到解决方案上。原因表示梯度差(DeltaGradient)达到其容忍水平(DeltaGradientTolerance).因此,SVMModel是一个经过充分训练的SVM分类器。

训练一个SVM分类器,并有意地使求解器不能收敛到一个解上。然后恢复训练分类器,而不必重新启动整个学习过程。比较部分训练的分类器和完全训练的分类器的替换损失值。

加载电离层数据集。

负载电离层

训练SVM分类器。指定优化例程最多使用100次迭代。监视指定软件每天打印诊断信息的算法50迭代。

SVMModel = fitcsvm (X, Y,“IterationLimit”, 100,“详细”, 1“NumPrint”, 50);
|===================================================================================================================================| | 迭代| |集合大小| |可行性三角洲|马| | |目标约束的数量  | | | | | 违反梯度差距| | | Vec增刊。| |违反  | |===================================================================================================================================| | 0 |活动| 351 | 9.971591 e-01 e + 00 | 2.000000 | 1.000000 e + e + 00 00 | 0 | 0.000000 | 0.000000 e + 00 | | 351 | |活跃e-01 | 8.064425 | 3.736929 e + 2.161317 e + 00 00 | | 60 e + 01 | -3.628863 | 1.110223 e-16 |支持向量机优化不收敛所需的公差。

该软件打印一个迭代显示到命令窗口。打印输出表明优化例程没有集中到解决方案上。

估计部分训练的SVM分类器的替换损失。

partialLoss = resubLoss (SVMModel)
partialLoss = 0.1054

训练样本的误分类误差约为12%。

继续训练另一个分类器1500迭代。指定软件每次打印诊断信息250迭代。

UpdatedSVMModel =简历(SVMModel, 1500,“NumPrint”, 250)
|===================================================================================================================================| | 迭代| |集合大小| |可行性三角洲|马| | |目标约束的数量  | | | | | 违反梯度差距| | | Vec增刊。| |违反  | |===================================================================================================================================| | 250 |活动| 351 | 1.137406 e-01 e + 00 | 1.688486 | 1.064098 e + 00 | 100 | -7.654307 e + 01 | 1.477984 e15汽油| | 500 | |活跃351 | 2.458986 e 03 e-02 | 8.900780 | 5.353919 e-02 | 103 | -7.819650 e + 01 | 1.570792 e15汽油| | 750 | |活跃351 | 6.861149 e-04 e-02 | 2.041818 | 1.045385 e-02 | 103 | -7.820930 e + 01 | 1.499668 e15汽油| | 1000 | |活跃351 | 5.992844 e-05 |1.878806e-03 | 1.095583e-03 | 103 | -7.820958e+01 | 1.606354e-15 | | 1072 |active| 351 | 3.992245e-05 | 9.877142e-04 | 5.324559e-04 | 103 | -7.820959e+01 | 1.823194e-15 |退出由于DeltaGradient收敛时的活动设置。
UpdatedSVMModel = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 351 Alpha: [103x1 double] Bias: -3.8829 KernelParameters: [1x1 struct] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] IsSupportVector: [351x1 logical] Solver: 'SMO' Properties, Methods

软件在迭代时恢复1000并使用与训练模型时相同的冗长级别fitcsvm.打印输出表明算法收敛了。因此,UpdatedSVMModel是经过充分训练的ClassificationSVM分类器。

updatedLoss = resubLoss (UpdatedSVMModel)
updatedLoss = 0.0769

经过完全训练的分类器的训练样本误分类误差约为8%。

输入参数

全部折叠

完整的经过训练的SVM分类器,指定为ClassificationSVM模型训练fitcsvm

继续训练SVM分类器的迭代次数,指定为正整数。

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:简历(SVMModel, 500,“详细”,2)火车SVMModel500更多迭代并指定在每次迭代中显示诊断消息和保存收敛条件。

冗长级别,指定为逗号分隔的对,由“详细”而且01,或2详细的控制在命令窗口中显示并保存为结构的优化信息的数量SVMModel.ConvergenceInfo.History

这个表总结了冗长级别的值。

价值 描述
0 软件不显示和保存收敛信息。
1 软件显示诊断信息,并保存每天的收敛条件numprint迭代,numprint是价值的“NumPrint”名称-值对的论点。
2 软件在每次迭代时显示诊断信息并保存收敛条件。

默认情况下,详细的就是fitcsvm使用培训SVMModel

例子:“详细”,1

数据类型:

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

如果你设置“详细”,1而且“NumPrint”,numprint,则软件显示来自SMO的所有优化诊断消息[1]和ISDA[2]每一个numprint命令窗口中的迭代。

默认情况下,NumPrint就是fitcsvm使用培训SVMModel

例子:“NumPrint”,500年

数据类型:

提示

如果优化不收敛,求解器SMO的ISDA的,然后尝试恢复训练SVM分类器。

参考文献

[1]球迷,R.-E。,林志信。陈,C.-J。林。用二阶信息选择工作集来训练支持向量机。机器学习研究杂志, 2005年第6卷,1889-1918页。

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

扩展功能

版本历史

介绍了R2014a

另请参阅

|

Baidu
map