python - 在 SciPy 中多核上运行 SVM 代码?

标签 python machine-learning scipy svm

我是数据科学领域的新手。我想在具有 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 核的机器上使用并行化:

https://github.com/RobeDM/LIBIRWLS

关于python - 在 SciPy 中多核上运行 SVM 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753783/

相关文章:

python - 使用python从混淆矩阵进行分层聚类

python - TypeError 禁止多对多设置

python - 将一个数组的每个元素乘以另一个数组的每个元素

Python - 准确显示 MySQL 数据库中的数据

machine-learning - 实现残差 block

r - 预测Logistf

python - 替换 pandas Dataframe 列中的 Unicode 字符

machine-learning - 为什么支持向量的个数为零?

python - 使用 numpy 将 M*N 矩阵的每个 3x3 窗口求和为 M/3*N/3 矩阵

python - python读取的复杂Matlab struct mat文件