SVM 的 C++ 数据

标签 c++ opencv bigdata svm

我将使用 openCV 的 (C++) SVM(支持 vector 机)进行分类。但有一个问题:

特征向量是如此之大(每个有1890000个元素),我有超过10000个特征向量来训练SVM。如何操作或使用特征向量而不遇到内存问题?

最佳答案

有了如此高的维度和如此多的训练样本,您将需要大量内存才能使用任何流行的 SVM 实现。如果我面临这个问题,那么我至少会考虑以下选项之一:

  • 减少每个 vector 的维度,有很多算法可以做到这一点,但 PCA 是一个很好的开始。
  • 在具有大量内存的主机上获取计算时间(也许亚马逊 ec2 实例之一就足够了)
  • 使用 SVM 的线性在线近似进行测试。在高维度中,您很可能可以将类分开 linearly还有SVM online approximations您可以使用它,然后一次只加载一个样本到内存,在这种情况下您不需要那么多内存(我会考虑使用 pegasos-svm)。

关于SVM 的 C++ 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939086/

相关文章:

c++ - 版本高于0x240的OpenCV程序编译

c++ - 如何使用opencv中的单应矩阵将一个点从一张图像重新投影到另一张图像?

c++ - 如何将 cdt 成功转换为 makefile?

javascript - 为什么 JavaScript 搞砸了 0.1 + 0.2 而 C++ 没有?

python - 如何比较数组中的(x,y)点以在python中提取矩形

java - Hadoop Mapreduce 计数器

hadoop - 如何在现有 Hive 表中加载新数据集?

java - 使用 Apache Spark 进行 UDP

c++ - 如何将链接列表的开始指针作为C++中的指针传递

c++ - 为什么cout会阻止后续代码在这里运行呢?