我在 5x2 交叉验证中使用 Libsvm 对大量数据进行分类,也就是说,我有 47k 个样本用于训练,47k 个样本用于 10 种不同配置的测试。
我一般都是用Libsvm的脚本easy.py来对数据进行分类,但是时间太长了,我已经等了3个多小时没有结果,我还是要重复此过程 9 次以上!
有人知道如何在处理大量数据时更快地使用 libsvm 吗? C++ Libsvm 函数是否比 python 函数运行得更快?
最佳答案
LibSVM 的训练算法无法扩展到此类数据集;在最坏的情况下需要 O(n³) 的时间,在典型的情况下需要大约 O(n²) 的时间。首先要尝试的是正确缩放数据集;如果还是不行,切换到
- 使用例如 Liblinear 的线性 SVM(或逻辑回归) , Vowpal Wabbit或 Wapiti
- 更具可扩展性的内核 SVM 实现,例如 LaSVM
关于python - libsvm 中的大量训练和测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457460/