Libsvm:第1行的输入格式错误

时间:2017-01-25 20:22:21

标签: machine-learning svm libsvm

我正在尝试使用Libsvm并且我得到以下行为:

root@bcfd88c873fa:/home/libsvm# ./svm-train myfile
Wrong input format at line 1
root@bcfd88c873fa:/home/libsvm# head -n 5 myfile
2   0:0.00000 8:0.00193 2:0.00000 1:0.00000 10:0.00722
3   6:0.00235 2:0.00000 0:0.00000 1:0.00000 5:0.00155
4   0:0.00000 1:0.00000 2:0.00000 4:0.00187
3   6:0.00121 8:0.00211 1:0.00000 2:0.00000 0:0.00000
3   0:0.00000 2:0.00000 1:0.00000

你能看到格式有什么问题吗?它适用于其他svm实现,例如Go中的this one

谢谢,

1 个答案:

答案 0 :(得分:4)

提供的格式正确无误。 Java的{​​{1}}接口会按预期处理提供的文件。

但是,我还尝试了Windows和Linux界面,其行为与您的问题中描述的相同。

LIBSVM 3.22

经过调查,我发现 feature-ids 必须排序才能被该工具正确处理(这似乎是{{1}的错误接口不受此限制...):

svm-train.exe myfile
Wrong input format at line 1

此外,当Java使用sparse-data format时,您可以通过跳过值为零的要素来简化数据集:

2   0:0.00000 1:0.00000 2:0.00000 8:0.00193 10:0.00722
3   0:0.00000 1:0.00000 2:0.00000 5:0.00155 6:0.00235
4   0:0.00000 1:0.00000 2:0.00000 4:0.00187
3   0:0.00000 1:0.00000 2:0.00000 6:0.00121 8:0.00211
3   0:0.00000 1:0.00000 2:0.00000