【发布时间】:2012-11-20 03:25:23
【问题描述】:
我正在编写一个使用 SVM 对某些图像(特别是 these)进行分类的应用程序。我的 Matlab 实现效果很好。使用 SIFT bag-of-words 方法,我能够通过线性内核获得接近 100% 的准确率。
出于速度/可移植性的原因,我需要在 C++ 中实现此功能,因此我尝试同时使用 libsvm 和 dlib。我尝试了多种 SVM 类型(c_svm、nu_svm、one_class)和多个内核(线性、多项式、rbf)。我能够达到的最好结果是大约 50% 的准确率——即使在我训练过的相同样本上也是如此。我已经确认我的特征生成器正在工作,因为当我将 c++ 生成的特征导出到 Matlab 并对其进行训练时,我能够再次获得近乎完美的结果。
Matlab 的 SVM 实现有什么神奇之处吗?是否有任何我可能会研究的常见陷阱或领域来解释我所看到的行为?我知道这有点含糊,但部分问题是我不知道该去哪里。如果我可以提供其他有用的信息,请在 cmets 中告诉我。
【问题讨论】:
-
也许你应该告诉 SVM == 支持向量机...
标签: c++ matlab machine-learning svm