3

我在 Matlab 中使用 libsvm 工具箱创建了一个分类器。它将所有正类数据分类为负类,反之亦然。我在进行交叉验证时得到了很好的结果,但是在测试一些数据时,我发现分类器的工作方式错误。我似乎无法弄清楚问题出在哪里。

任何人都可以在这件事上帮助我。

4

2 回答 2

2

当第一个训练示例的(二进制)标签为 -1 时,这是 libsvm 先前版本的“功能”。最简单的解决方案是获取最新版本(> 3.17)。

有关详细信息,请参见此处:http ://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f430

于 2013-05-31T18:30:08.763 回答
0

假设您有 500 个训练实例。250 将是正数,其他为负数。现在在测试集中,与正例具有相同特征的实例将被预测为正例。但是,当您向 LIBSVM 提供测试标签(您必须提供测试标签以便 LIBSVM 可以计算准确性,它们显然不会用于预测算法)时,您已经提供了完全相反的标签(错误地)。所以你有一种感觉,你预测的标签已经完全相反了。因为对于二元分类问题,即使是随机分类器也有 50% 的准确率。

于 2013-03-05T02:28:41.217 回答