我正在使用libsvm,并希望训练一些数据,这里的问题是,libsvm以特殊格式询问输入模式。
让我的文件:
72,0,5.6431,28.19,34.398,0.00662,3.38005,0.00401,0.00317,0.01204,0.02565,1
58,0,5.8600,77.7 ,19.317,0.00793,6.39105,0.00379,0.00385,0.01136,0.03751,2
哪里
设为libsvm请求的格式(取自heart_scale示例文件):
+1 1:0.708333 2:1 3:1 4:-0.320755 5:-0.105023 6:-1 7:1 8:-0.419847 9:-1 10:-0.225806 12:1 13:-1
-1 1:0.583333 2:-1 3:0.333333 4:-0.603774 5:1 6:-1 7:1 8:0.358779 9:-1 10:-0.483871 12:-1 13:1
+1 1:0.166667 2:1 3:-0.333333 4:-0.433962 5:-0.383562 6:-1 7:-1 8:0.0687023 9:-1 10:-0.903226 11:-1 12:-1 13:1
如何加载或输入libsvm格式的输入文件?要么 更改第一列的最后一列?,更改列号的','和':'?? 我忘了说对于libsvm,第一列代表了类......
答案 0 :(得分:1)
Libsvm提供了一个C代码,您可以编译并使用它来轻松地将您的功能转换为libsvm格式。 (下载链接:http://www.csie.ntu.edu.tw/~cjlin/libsvm/faqfiles/convert.c) 但是,在您的情况下,您必须首先将类ID(1-2)放在每个文件的开头。输入文本文件的每一行应如下所示: 0,-6.5012,-2.874
第一个值是类标签,其余是特征值。
./ convert_compiled feat.txt> svm_format_feat.txt
相应的输出行将是:
0 1:-6.501200 2:-2.874000