libsvm上的结果只支持两个类中的一个类

时间:2013-06-27 06:11:45

标签: svm

我对我的数据有一个奇怪的结果,我想知道你或其他任何人可能对它有任何见解.. 我有大约5000个数据和大约16000个属性,我训练了我的RBF svm(我在matlab上使用libsvm),每个类有2000个数据(我只有两个类)并用其余的(大约1000个数据)测试它。 / p>

奇怪的部分是结果的所有概率估计都具有相同的值,因此属于一个类的100%测试数据导致正确预测,其余100%导致错误,无论是什么输入是,它会预测第一类......

我尝试了交叉验证以找到RBF的最佳参数,但准确度并​​没有远离50%(你可以猜到为什么,一半是100%正确,一半是100%错误),最大准确度是51.25%

然后我尝试了线性SVM,即使概率估计值至少与之前的值不同,结果仍然显示相同的趋势,尽管不是之前的100%(一个类别为97%,另一个类别为4%) ),所以是的,主要问题是无论测试数据是什么,它都有利于一个类。

我没有尝试集中或缩放数据,这会有什么不同吗?

你们有什么想法吗?我真的很感激。感谢。

1 个答案:

答案 0 :(得分:3)

有些事情可能会出错,但以下是您似乎缺少的主要内容:

  1. 扩展您的数据:是的, 重要。它可以使得到的分类器的性能产生显着差异。 LIBSVM作者beginner's guide提供了一个很好的例子(附录B)。确保在训练和测试数据上使用相同的缩放因子。
  2. 您没有调整C参数。根据您的描述,听起来C太低了。这导致分类器具有非常简单的参数(alpha s)但是大量的错误分类。该指南还包含有关为什么以及如何进行参数调整的良好解释。