查看: 222|回复: 2|关注: 0

[已答复] libsvm使用CV训练 训练精度理想 但测试结果差

[复制链接]

新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
发表于 2019-7-12 04:45:35 | 显示全部楼层 |阅读模式
本帖最后由 R.oicinalisL 于 2019-7-12 05:08 编辑

问题描述:先将数据分为训练集和测试集
然后用3.23版本的libsvm训练数据,并采用交叉验证,并且选取了最优c、g,得到精度均在90左右
但是用测试集效果只有50左右
请问是什么原因?应该如何调整?
代码如下:

  1. [bestacc,bestc,bestg] = SVMcgForClass(train_labels,train_data,c1,c2,g1,g2,3,0.2,0.2);
  2. cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg)];
  3. model=svmtrain(train_labels,train_data,cmd);
  4. [predict_label, accuracy, dec_values]=svmpredict(test_labels,test_data,model);
复制代码




我用得到的c g 去重新训练,仍旧是交叉验证 也无法得到90左右精度
尝试多次 排除样本某次抽取差异性大的情况
很奇怪 求解答TT

代码如下:
  1. [bestacc,bestc,bestg] = SVMcgForClass(train_labels,train_data,c1,c2,g1,g2,3,0.2,0.2);
  2. cmd = ['-v ','3','-c ',num2str(bestc),' -g ',num2str(bestg)];
  3. model=svmtrain(train_labels,train_data,cmd);
复制代码


求解答!



新手

5 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2019-7-12 05:28:33 | 显示全部楼层
或者有没有同样疑惑的小伙伴我们一起可以讨论一下~

MATLAB 基础讨论
版块优秀回答者

入门

174 麦片

财富积分


50500


4

主题

548

帖子

34

最佳答案
  • 关注者: 18
发表于 2019-7-13 12:27:56 | 显示全部楼层
R.oicinalisL 发表于 2019-7-12 05:28
或者有没有同样疑惑的小伙伴我们一起可以讨论一下~

应该是代码的问题,给你站内信了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表