svm.sparse.SVC花了很多时间接受训练

时间:2013-03-01 09:44:32

标签: python svm scikit-learn

我正在尝试在scikit-learn中训练svm.sparse.SVC。现在,特征向量的维数约为70万,用于训练的特征向量的数量为20k。我使用csr稀疏矩阵提供输入,因为在每个特征向量中只有大约500个维度是非零的。代码自过去5小时开始运行。有没有估计需要多长时间?有没有办法更快地进行培训?内核是线性的。

1 个答案:

答案 0 :(得分:3)

尝试使用sklearn.svm.LinearSVC。这也有一个线性内核,但底层实现是liblinear,已知它更快。考虑到这一点,您的数据集不是很小,所以即使这个分类器也可能需要一段时间。


首次评论后编辑: 在那里,我认为你有几种选择,但都不是完美的:

  • 非解决方案选项:称之为一天,并希望svm.sparse.SVC的培训明天上午结束。如果可以的话,买一台更好的电脑。
  • 作弊选项:放弃概率。你没有告诉我们你的问题是什么,所以它们可能不是必需的。
  • 背靠墙选项:如果您绝对需要概率并且事情必须运行得更快,请使用不同的分类器。选项包括sklearn.naive_bayes.*sklearn.linear_model.LogisticRegression。这些训练要快得多,但是你付出的代价会降低准确度。