请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用svm对mnist数据集训练

老师,我使用PCA对数据集进行降维后,特征只剩87个,然后我用knn对数据集训练,1秒左右就训练完了。然后我尝试使用svm对数据集进行训练,结果它跑了半天都没有跑完。 我把1万个训练集放进去训练,它跑了两个多小时。现在我使用了4万个训练数据去训练,跑了半天也没训练完。

速度如此慢,是因为mnist数据集不适合使用svm分类吗?还是说可能是我svm的参数没设置好?

谢谢老师

正在回答

1回答

首先 knn 的训练就是很快,是因为 knn 训练根本不做什么事情。再回忆一下课程中讲解的 knn 的过程?相较而言,让 knn 做预测就会慢很多:)


相应的,svm 训练就是慢,尤其是:

1)你在做网格搜索?

2)训练速度也会和具体参数,比如 gamma 和 C 相关。

3) 另外,请确认你的传参是正确的,确实是使用降维后的数据做的训练


我在我的环境下测试了一下,默认参数的 SVC,训练时间是 1 分钟,预测时间是 11s 左右,最后准确率是 98.44%。


我不确定是我们的环境差异,还是你的代码有问题?

(P.S. 调整参数可能极大地影响 SVC 的训练时间)


https://img1.sycdn.imooc.com/szimg/5f89212e097cf5dd06200496.jpg


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 Ams0 #1
    确实是我SVC的参数问题。。 之前对svm的参数不太懂,照着网上用了svm.SVC(kernel='linear', C=0.4)。 刚刚使用了默认参数的 SVC,四十多秒就训练完了。。 是我学得不过关,还要多对它的参数设置进行理解,谢谢老师!
    回复 有任何疑惑可以回复我~ 2020-10-16 13:18:24
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信