Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python libsvm中的大量训练和测试数据_Python_C++_Svm_Libsvm - Fatal编程技术网

Python libsvm中的大量训练和测试数据

Python libsvm中的大量训练和测试数据,python,c++,svm,libsvm,Python,C++,Svm,Libsvm,我在5x2交叉验证中使用Libsvm对大量数据进行分类,也就是说,我有47k样本用于训练,47k样本用于测试10种不同配置 我通常使用Libsvm的脚本easy.py来对数据进行分类,但这需要很长时间,我已经等待了3个多小时的结果,什么都没有,我仍然需要重复这个过程9次以上 有人知道如何在海量数据中更快地使用libsvm吗?C++ LIbSVM函数是否比Python函数工作得更快?< P>LIbSVM的训练算法没有扩展到这种数据集;最坏情况下需要O(n³)的时间,典型情况下大约需要O(n²)的时

我在5x2交叉验证中使用Libsvm对大量数据进行分类,也就是说,我有47k样本用于训练,47k样本用于测试10种不同配置

我通常使用Libsvm的脚本easy.py来对数据进行分类,但这需要很长时间,我已经等待了3个多小时的结果,什么都没有,我仍然需要重复这个过程9次以上


有人知道如何在海量数据中更快地使用libsvm吗?C++ LIbSVM函数是否比Python函数工作得更快?

< P>LIbSVM的训练算法没有扩展到这种数据集;最坏情况下需要O(n³)的时间,典型情况下大约需要O(n²)的时间。首先要尝试的是正确地扩展数据集;如果仍然不起作用,请切换到

  • 线性支持向量机(或逻辑回归),使用,例如,或
  • 更具可伸缩性的内核SVM实现,如

正如larsmans提到的,libsvm可能无法根据数据的维度和数据点的数量很好地进行缩放

C实现可能会运行得快一点,但不会有太大的区别。你有几个选择

  • 您可以随机抽样数据,以处理其中的一小部分
  • 您可以使用以下方法将数据投影到较低的维度
  • 根据您的数据类型,您可以查看不同的内核。直方图相交内核是否适用于您的数据?当你真的只需要一个线性决策函数时,你使用的是RBF核吗

希望这有帮助!机器学习中最棘手的问题之一是有时需要处理大量的数据。

easy.py是一个用于训练和评估分类器的脚本。它使用grid.py对SVM参数进行元训练。在grid.py中,是一个参数“nr_local_worker”,用于定义线程数。您可能希望增加它(检查处理器负载)。

谢谢您的回答,但是如果我使用带线性内核的libsvm(例如-svmtrain和参数t0),我是否使用线性svm,因此运行时间将很短?@mad:不。您将使用相同的、缓慢的SMO算法。这就是为什么LibSVM的作者发布了Liblinear,它可以(几乎)用坐标下降算法拟合同一种模型。