【问题标题】:Transform input file in matlab adding values, or replacing and save it to other file在matlab中转换输入文件添加值,或替换并将其保存到其他文件
【发布时间】:2011-07-01 16:22:25
【问题描述】:

我正在使用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

在哪里

  • 第一行中的最后一个“1”(最后一列)表示 类
  • 第二行的最后一个'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,第一列代表类...

【问题讨论】:

    标签: matlab libsvm


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      相关资源
      最近更新 更多