我在Matlab中使用libsvm工具箱创建了一个分类器。它将所有正类数据分类为负类,反之亦然。我在进行交叉验证时得到了很好的结果,但在测试一些数据时,我发现分类器的工作方式错误。我似乎无法弄清问题所在。
有人可以帮我解决这个问题。
答案 0 :(得分:2)
当第一个训练样例(二进制)标签为-1时,这是libsvm先前版本的“特征”。最简单的解决方案是获取最新版本(> 3.17)。
请点击此处了解详情:http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f430
答案 1 :(得分:0)
假设您有500个训练实例。 250将是积极的,其他是负面的。现在在测试集中,具有与正面相同特征的实例将被预测为正面。但是当您提供测试标签(您必须提供测试标签以便LIBSVM可以计算准确性,它们显然不会在预测算法中使用)到LIBSVM时,您提供了完全反向标签(错误地)。所以你有一种感觉,你预测的标签恰好相反。因为即使是随机分类器,二元分类问题的准确度也会达到50%。