训练SVM分类器需要多少时间?
machine-learning
numpy
python
svm
5
0

我编写了以下代码,并在小数据上对其进行了测试:

classif = OneVsRestClassifier(svm.SVC(kernel='rbf'))
classif.fit(X, y)

其中X, y (X-30000x784矩阵,y-30000x1)是numpy数组。关于小数据的算法效果很好,并给出了正确的结果。

但是我大约在10个小时前运行了我的程序……而且程序仍在进行中。

我想知道需要多长时间,或者卡在某种程度上? (笔记本电脑规格4 GB内存,Core i5-480M)

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

SVM培训可以任意长,这取决于数十个参数:

  • C参数-错误分类罚则越大,过程越慢
  • 内核-内核越复杂,进程越慢(rbf是预定义内核中最复杂的)
  • 数据大小/维度-同样,同样的规则

通常,基本的SMO算法为O(n^3) ,因此在30 000个数据点的情况下,它必须按与2 700 000 000 000成正比的运算数量进行运算,这确实是一个巨大的数字。您有什么选择?

  • 将内核更改为线性内核,784个功能很多,rbf可以冗余
  • 降低特征的尺寸(PCA?)
  • 降低C参数
  • 在数据的子集上训练模型以找到合适的参数,然后在某个集群/超级计算机上训练整个模型
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号