【发布时间】:2013-02-15 18:35:27
【问题描述】:
我正在尝试在 scikit-learn 中训练 svm.sparse.SVC。目前特征向量的维度约为 70 万,用于训练的特征向量数量为 20k。我使用 csr 稀疏矩阵提供输入,因为每个特征向量中只有大约 500 个维度是非零的。该代码自过去 5 小时以来一直在运行。有没有估计需要多少时间?有什么方法可以更快地进行训练吗?内核是线性的。
【问题讨论】:
标签: python svm scikit-learn
我正在尝试在 scikit-learn 中训练 svm.sparse.SVC。目前特征向量的维度约为 70 万,用于训练的特征向量数量为 20k。我使用 csr 稀疏矩阵提供输入,因为每个特征向量中只有大约 500 个维度是非零的。该代码自过去 5 小时以来一直在运行。有没有估计需要多少时间?有什么方法可以更快地进行训练吗?内核是线性的。
【问题讨论】:
标签: python svm scikit-learn
尝试使用sklearn.svm.LinearSVC。这也有一个线性内核,但底层实现是liblinear,已知它更快。考虑到这一点,您的数据集并不是很小,因此即使是这个分类器也可能需要一段时间。
在第一条评论后编辑: 我认为您有多种选择,但都不是完美的:
svm.sparse.SVC 的培训明天早上结束。如果可以的话,买一台更好的电脑。sklearn.naive_bayes.*、sklearn.linear_model.LogisticRegression。等等。这些会更快地训练,但你付出的代价是准确性有所降低。【讨论】:
svm.SVC 几乎不是一个好主意。使用逻辑回归。