采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,我使用PCA对数据集进行降维后,特征只剩87个,然后我用knn对数据集训练,1秒左右就训练完了。然后我尝试使用svm对数据集进行训练,结果它跑了半天都没有跑完。 我把1万个训练集放进去训练,它跑了两个多小时。现在我使用了4万个训练数据去训练,跑了半天也没训练完。
速度如此慢,是因为mnist数据集不适合使用svm分类吗?还是说可能是我svm的参数没设置好?
谢谢老师
首先 knn 的训练就是很快,是因为 knn 训练根本不做什么事情。再回忆一下课程中讲解的 knn 的过程?相较而言,让 knn 做预测就会慢很多:)
相应的,svm 训练就是慢,尤其是:
1)你在做网格搜索?
2)训练速度也会和具体参数,比如 gamma 和 C 相关。
3) 另外,请确认你的传参是正确的,确实是使用降维后的数据做的训练
我在我的环境下测试了一下,默认参数的 SVC,训练时间是 1 分钟,预测时间是 11s 左右,最后准确率是 98.44%。
我不确定是我们的环境差异,还是你的代码有问题?
(P.S. 调整参数可能极大地影响 SVC 的训练时间)
继续加油!:)
确实是我SVC的参数问题。。 之前对svm的参数不太懂,照着网上用了svm.SVC(kernel='linear', C=0.4)。 刚刚使用了默认参数的 SVC,四十多秒就训练完了。。 是我学得不过关,还要多对它的参数设置进行理解,谢谢老师!
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
3.0k 15
1.6k 15
1.5k 14