python - 训练SVM分类器需要多少时间?

标签 python numpy machine-learning svm

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

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

其中 X, y(X - 30000x784 矩阵,y - 30000x1)是 numpy 数组。在小数据算法上效果很好,给我正确的结果。

但我在大约 10 小时前运行了我的程序......它仍在进行中。

我想知道需要多长时间,或者它以某种方式卡住了? (笔记本电脑规范 4 GB 内存,Core i5-480M)

最佳答案

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

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

一般来说,基本 SMO 算法是 O(n^3),因此在 30 000 数据点的情况下,它必须运行与 成比例的操作数>2 700 000 000 000这是一个非常大的数字。你有什么选择?

  • 改一个内核为线性内核,784个特征挺多的,rbf可以冗余
  • 降低特征的维度(PCA?)
  • 降低C参数
  • 在您的数据子集上训练模型以找到好的参数,然后在某个集群/ super 计算机上训练整个模型

关于python - 训练SVM分类器需要多少时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165213/

相关文章:

python - django-storages S3 后端无法加载

python - 3D 二进制数组中到其他类型最近点的距离

python - 正确使用 fmin_l_bfgs_b 来拟合模型参数

language-agnostic - 有哪些软件驱动双足机器人运动的技术?

python - 使用 dill 库保存和加载 neupy 算法可以在同一时间段返回不同的预测吗?

python - emnist 训练数据集中的字母被旋转并且有点模糊

python - 二分查找小错误Python 3.5

python - 无法运行 python manage.py shell

python - 解包概括

python - macOS Python 和 numpy 在训练神经网络方面比 Julia 更快