我是数据科学领域的新手。我想在具有 50 万行和 81 列的数据集上使用 SVM 训练模型。
到目前为止,在 SciPy 中运行这个模型需要几个小时。我可以访问 100 多个计算节点,每个节点有 16 个核心,但由于我不知道如何运行此 SVM 代码,所以不确定如何利用这一点。
有人可以为我指出正确的方向,告诉我应该如何解决这个资源问题吗?
最佳答案
你使用什么内核函数?
SVM 的扩展性不太好。运行时间为 O(n^3),其中 n 是训练样本的数量。
如果您不使用核函数,您可以创建一个 Spark 集群,并且可以使用 Spark mllib SVM,它是一个线性分类器:
https://spark.apache.org/docs/latest/mllib-linear-methods.html
如果您使用非线性内核函数,那么您可以使用 LIBIRWLS,即多核,因此您可以在使用 16 核的机器上使用并行化:
关于python - 在 SciPy 中多核上运行 SVM 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753783/