svm.sparse.SVC训练耗时长
我正在尝试在scikit-learn中训练svm.sparse.SVC。现在,我的特征向量的维度大约是70万,而用于训练的特征向量数量是2万。我使用的是csr稀疏矩阵作为输入,因为每个特征向量中只有大约500个维度是非零的。我的代码已经运行了5个小时了。有没有人能估计一下这需要多长时间?有没有什么方法可以让训练更快一些?我使用的核函数是线性的。
1 个回答
3
试试使用 sklearn.svm.LinearSVC
。这个也有线性核,但它的底层实现是 liblinear
,这个被认为速度更快。考虑到你的数据集不算小,所以即使是这个分类器也可能需要一些时间。
在第一个评论后编辑:
- 不解决问题的选项:就这样吧,希望
svm.sparse.SVC
的训练明天早上能完成。如果可以的话,买台更好的电脑。 - 作弊的选项:放弃概率。你没有告诉我们你的问题是什么,所以这些可能不是必需的。
- 背水一战的选项:如果你绝对需要概率,并且希望运行得更快,可以换个分类器。可以选择
sklearn.naive_bayes.*
、sklearn.linear_model.LogisticRegression
等等。这些训练起来会快很多,但你可能会牺牲一些准确性。