【发布时间】:2014-05-21 06:29:06
【问题描述】:
我将使用 openCV 的 (C++) SVM(支持向量机)进行分类。但是有一个问题:
特征向量非常大(每个都有 1890000 个元素),我有超过 10000 个特征向量来训练 SVM。如何在没有记忆问题的情况下操作或使用特征向量?
【问题讨论】:
-
我建议你使用像PCA这样的特征缩减算法。
-
1.买一台更高级的电脑……看起来你需要一台有 256 gig 内存的电脑。 2. 一次只处理一个或分块处理(问题是 10000 倍数,1890000 个双精度元素只有 14 兆字节),如果可能的话,将其余部分留在硬盘上。
-
Dimensionality reduction 是你的朋友。
-
就像 herohuyongtao 和 gokhans 所说的那样,使用 PCA 进行降维,或者只是删除特征向量的冗余部分应该会有所帮助。现在你的 SVM 训练需要很多时间,记住 SVM 的预测是 O(support vector * size of feature vector ),所以你的 SVM 预测也会很慢。