我正在尝试在scikit-learn中训练svm.sparse.SVC。现在,特征向量的维数约为70万,用于训练的特征向量的数量为20k。我使用csr稀疏矩阵提供输入,因为在每个特征向量中只有大约500个维度是非零的。代码自过去5小时开始运行。有没有估计需要多长时间?有没有办法更快地进行培训?内核是线性的。
答案 0 :(得分:3)
尝试使用sklearn.svm.LinearSVC
。这也有一个线性内核,但底层实现是liblinear
,已知它更快。考虑到这一点,您的数据集不是很小,所以即使这个分类器也可能需要一段时间。
首次评论后编辑: 在那里,我认为你有几种选择,但都不是完美的:
svm.sparse.SVC
的培训明天上午结束。如果可以的话,买一台更好的电脑。sklearn.naive_bayes.*
,sklearn.linear_model.LogisticRegression
。这些训练要快得多,但是你付出的代价会降低准确度。