Parallel processing 通过并行处理加速Sklearn中的支持向量回归

Parallel processing 通过并行处理加速Sklearn中的支持向量回归,parallel-processing,scikit-learn,svm,Parallel Processing,Scikit Learn,Svm,我试图对sklearn中的一些文本数据执行支持向量回归。我有大约10000个文档,已经转换成大约30000个特性。标签是每个文档作者出生的年份(分布于1900年至2016年) 我最初在sklearn中尝试SVR类,但这需要很长时间。因为我不知道它会有什么进展,所以我决定改用SGDRegressor,它有一个很好的选项,可以提供一些中间输出。现在我可以看到算法正在进步,但收敛速度很慢。我能做些什么来加快速度?一个选择是使用步长/学习速率,我现在就要这么做,但我想知道是否有任何方法可以使用并行处理来

我试图对sklearn中的一些文本数据执行支持向量回归。我有大约10000个文档,已经转换成大约30000个特性。标签是每个文档作者出生的年份(分布于1900年至2016年)


我最初在sklearn中尝试SVR类,但这需要很长时间。因为我不知道它会有什么进展,所以我决定改用SGDRegressor,它有一个很好的选项,可以提供一些中间输出。现在我可以看到算法正在进步,但收敛速度很慢。我能做些什么来加快速度?一个选择是使用步长/学习速率,我现在就要这么做,但我想知道是否有任何方法可以使用并行处理来加快每一步。我可以看到SGDClassizer类有一个n_作业选项来利用多个处理器,但是我没有看到SGDRegressor类有类似的选项。这让我感到奇怪,因为SGD似乎可以从并行化中获益。在sklearn中,有没有什么库可以让我从中受益,或者有没有加快SVM速度的想法?

您的特征矩阵的维数显然太大太稀疏了。SVR和SGD都不能有效地拟合如此大的矩阵。一般经验法则是,当特征数量超过示例数量时,模型容易过度拟合

我建议使用截断SVD来降低矩阵的维数并训练SVR

在这里,我无耻地宣传我自己的答案: