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

2024-04-27 04:50:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我通常使用Libsvm的脚本轻松.py对数据进行分类,但时间太长了,我已经等了3个多小时了,什么也没有,我还得重复这个过程9次以上!在

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


Tags: 数据函数py脚本过程时间分类交叉
3条回答

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

C实现可能运行得更快一些,但不会有显著的区别。你有几个选择。在

  • 你可以随机抽取你的数据来处理它的一小部分。在
  • 您可以使用PCA这样的东西将数据投影到一个较低的维度中
  • 根据您的数据类型,您可以查看不同的内核。柱状图交集内核对您的数据有用吗?当你真的需要一个线性决策函数的时候,你在使用RBF核吗?在

希望这有帮助!机器学习中最困难的问题之一是处理有时所需的纯量数据。在

在轻松.py是用于训练和评估分类器的脚本。它对支持向量机参数进行元训练网格.py. 在网格.py参数“nr_local_worker”定义线程数。您可能希望增加它(检查处理器负载)。在

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

  • 使用LiblinearVowpal Wabbit或{a3}的线性支持向量机(或逻辑回归)
  • 一个更可伸缩的内核支持向量机实现,如LaSVM

相关问题 更多 >