如何在测试数据未标注的情况下运行 'svm-predict.exe' of LIBSVM?

How to run 'svm-predict.exe' of LIBSVM when test data is not labeled?

我正在尝试使用 LIBSVM 对手写字符进行分类。我已成功执行 'svm-train.exe' 进行训练,并成功执行 'svm-predict.exe' 进行测试。对于两者,输入文件格式是-

0 1:1 2:0 3:1 4:0
1 1:0 2:1 3:0 4:1
0 1:1 2:0 3:1 4:1
1 1:0 2:1 3:0 4:1

现在,我想用 'svm-predict.exe' 对未标记的数据进行分类。所以,现在输入文件将是这样的-

1:1 2:0 3:1 4:0
1:0 2:1 3:0 4:1
1:1 2:0 3:1 4:1
1:0 2:1 3:0 4:1

但是,当我 运行 'svm-predict.exe' 使用上述输入时,显示以下 error-

Wrong input format at line 1

这意味着-我不能将未标记的数据提供给'svm-predict.exe'。那么我想如何在实际应用程序中使用它,我想在其中标记未标记的数据?我用谷歌搜索并问过其他人,但没有得到有用的解决方案。

备注: 我得到的一个建议是——用任意随机值标记测试数据(因为我不需要准确性)。但这对我来说似乎不合逻辑。有什么直接的方法可以做到吗?

简单的答案是- 不,'svm-predict.exe' 不能在没有 label 的情况下使用。 'executable' 并非为 实际使用而设计 ,如 rzo 评论-

svm-predict.exe is only for "playing" around and not for real-world application. Best way would be to use the library and write some own code.

但是,如果我们想简单地用它来演示或者避免编程的复杂性,那么除了使用 'random labels'.

在项目中使用LIBSVM库,可以访问这里-

您需要将 "svm-predict.exe" 与 'test'、'model' 和 'out' 文件一起使用。 假设您的训练文件 -> abc.train 和您的测试文件 -> abc.test。 当你在 cmd 中执行 "svm-train.exe abc.train" 时,它会在当前目录中创建 "abc.train.model" 文件。 为了进行预测,需要在cmd中执行"svm-predict.exe abc.test abc.train.model abc.out"。不要担心"abc.out",它会自动生成。 PS:In 测试文件,您需要像在训练文件中那样描述 类 行。 它将在 abc.out 上打印结果 类 并通过比较输出文件和测试文件给出准确性。