我正在做一个关于SVM的小项目,在我执行验证SVM训练后的模型的时候,得到的report分数总是很高,无论是召回率(查全率)、精准度、还是f1-score都很高:

图1 分类器分数report
但是,对于训练的效果就非常差,差到连包含训练集的测试集都无法正确分类,如下图所示,左边是原图像,右边是分类图像,(我标注的标签样本是黄色区域与褐色区域),其中SVC的默认参数为rbf、C=1.0、gamma=“auto_deprecated”,LinearSVC的默认参数为:C=1.0、class_weight=none、dual=true、loss=“squard_hinge”:

a.原图

b.SVC(default parameter)

c.LinearSVC(default parameter)
图2. 默认分类效果
由上文可以发现,分类器分类的效果很不好,为了进一步验证这个问题的原因,接下来我分别对LinearSVC和SVC进行参数调整:
1、LinearSVC参数调整
C:使用损失函数是用来对样本的分类偏差进行描述,例如:
由上文可以发现,分类器分类的效果很不好,为了进一步验证这个问题的原因,接下来我分别对LinearSVC和SVC进行参数

本文探讨了在C语言中SVM分类器的二次开发问题,主要展示了在训练和验证过程中遇到的高分低效现象。通过调整LinearSVC和SVC的参数C和gamma,分析了它们对分类效果的影响。实验表明,尽管GridSearch找到了一组最优参数,但在实际应用中效果并不理想。接下来,文章将介绍离子群优化算法(PSO)作为参数调优的替代方案。
最低0.47元/天 解锁文章
767

被折叠的 条评论
为什么被折叠?



