在SciPy中通过多个内核运行SVM代码?

时间:2016-11-22 23:50:50

标签: python machine-learning scipy svm

我是数据科学领域的新手。我想在具有500k行和81列的数据集上使用SVM训练模型。

到目前为止,在SciPy中运行此模型需要数小时。我可以访问100多个计算节点,每个计算节点有16个核心,但由于我对如何运行此SVM代码缺乏了解,因此不知道如何利用这一点。

有人能指出我应该如何解决这个资源问题吗?

1 个答案:

答案 0 :(得分:0)

您使用的是什么内核功能?

SVM并不能很好地扩展。运行时间为O(n ^ 3),其中n是训练样本的数量。

如果您不使用内核函数,则可以创建一个spark集群,并且可以使用作为线性分类器的spark mllib SVM:

https://spark.apache.org/docs/latest/mllib-linear-methods.html

如果您使用非线性内核函数,那么您可以使用LIBIRWLS,即多核,因此您可以在使用16个核心的计算机上使用并行化:

https://github.com/RobeDM/LIBIRWLS