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

ahm*_*yid 5 svm

我的数据有一个奇怪的结果,我想知道您或其他任何人是否对此有任何见解..我有大约 5000 个数据,大约有 16000 个属性,我训练了我的 RBF svm(我在 matlab 上使用 libsvm)每个班级有 2000 个数据(我只有两个班级)并用其余的(大约 1000 个数据)对其进行测试。

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

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

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

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

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

Mar*_*sen 4

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

  1. 扩展您的数据:是的,这很重要。它可以对生成的分类器的性能产生显着影响。LIBSVM 作者(附录 B)编写的初学者指南中提供了一个很好的示例。确保对训练和测试数据使用相同的缩放因子。
  2. 您没有调整C参数。根据你的描述,感觉C是太低了。这导致分类器的参数非常简单,alpha但存在大量错误分类。该指南还很好地解释了参数调整的原因和方式。