名义上是一个很好的问题,但我很确定这是因为有趣的事情正在发生......
作为背景,我正在研究面部表情/识别空间中的问题,因此获得100%的准确度似乎令人难以置信地难以置信(并非在大多数应用程序中都是合理的......)。我猜测数据集中存在一些一致的偏差,它使得SVM过于容易地得出答案,=或=,更可能的是,我在SVM方面做错了。
我正在寻找建议,以帮助了解发生了什么 - 是我(=我对LibSVM的使用)?或者是数据?
细节:
初步结论?:
数据的某些东西被淹没 - 不知何故,在数据集中,有一个微妙的,实验者驱动的效果,SVM正在接受。
(首先,这不解释为什么RBF内核会产生垃圾结果。)
非常感谢有关a)如何修复我对LibSVM的使用(如果这实际上是问题)或b)确定LibSVM数据中的微妙实验者偏见的任何建议。
答案 0 :(得分:11)
另外两个想法:
确保您没有对同一数据进行培训和测试。这听起来有点愚蠢,但在计算机视觉应用中,你应该注意:确保你没有重复数据(比如同一个视频的两个帧落在不同的折叠上),你不是在同一个人的训练和测试等等。它比听起来更微妙。
确保搜索RBF内核的gamma和C参数。有很好的理论(渐近)结果证明线性分类器只是简并RBF分类器。所以你应该寻找一个好的(C,gamma)对。
答案 1 :(得分:10)
尽管魔鬼在细节中,但您可以尝试三种简单的测试:
classregtree
在Matlab中找到,也可以加载到R并使用rpart
。这可以告诉您是否只有一个或几个功能可以完美分离。方法#1快速&应该是富有洞察力的。我可以推荐其他一些方法,但#1和#2很容易,如果他们没有给出任何见解,那就太奇怪了。