我正在尝试使用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'时,会显示错误 -
第1行的输入格式错误
这意味着 - 我无法将未标记的数据提供给'svm-predict.exe'。那么我想如何在真实世界的应用程序中使用它,我想在哪里标记未标记的数据?我用谷歌搜索,并问其他人但没有得到有用的解决方案。
备注:我得到的建议是用任意随机值标记测试数据(因为我不需要准确性)。但这对我来说似乎不合逻辑。有没有直接的方法来做到这一点?
答案 0 :(得分:1)
答案是 - 不,'svm-predict.exe'不能在没有标签 的情况下使用。 “可执行文件”不是为现实世界使用而设计的,因为rzo已注释 -
svm-predict.exe仅用于“播放”而不是用于实际应用程序。最好的方法是使用库并编写一些自己的代码。
但是,如果我们只想将它用于演示或避免编程的复杂性,那么除了使用“随机标签”之外别无他法。
要在项目中使用LIBSVM库,您可以访问此处 -
答案 1 :(得分:0)
你需要使用" svm-predict.exe"使用' test',' model'和' out'文件。 让我们假设您的列车文件 - > abc.train和你的测试文件 - > abc.test。 当你执行" svm-train.exe abc.train"在cmd中,它将创建" abc.train.model"当前目录中的文件。 为了预测,你需要执行" svm-predict.exe abc.test abc.train.model abc.out"在cmd。不要担心" abc.out"它会自动生成。 PS:在测试文件中,您需要像在train文件中一样描述行的类。 它将在abc.out上打印结果类,并通过比较out和test文件来提供准确性。