重新开始
恢复训练支持向量机(SVM)分类器
描述
例子
简历训练SVM分类器
训练一个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%。
输入参数
SVMModel
- - - - - -完整的,训练过的SVM分类器
ClassificationSVM
分类器
完整的经过训练的SVM分类器,指定为ClassificationSVM
模型训练fitcsvm
.
numIter
- - - - - -的迭代次数
正整数
继续训练SVM分类器的迭代次数,指定为正整数。
数据类型:双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:简历(SVMModel, 500,“详细”,2)
火车SVMModel
为500
更多迭代并指定在每次迭代中显示诊断消息和保存收敛条件。
提示
如果优化不收敛,求解器SMO的
或ISDA的
,然后尝试恢复训练SVM分类器。
参考文献
[1]球迷,R.-E。,林志信。陈,C.-J。林。用二阶信息选择工作集来训练支持向量机。机器学习研究杂志, 2005年第6卷,1889-1918页。
凯克曼V., t。黄和M.沃格特。从巨大数据集训练核机器的迭代单数据算法:理论和性能。支持向量机:理论与应用.王立波主编,255-274。柏林:斯普林格出版社,2005年版。
扩展功能
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
该功能完全支持GPU阵列。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
介绍了R2014a
另请参阅
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。