如何为LIBSVM和/或TinySVM制作培训和测试数据文件

时间:2014-02-22 17:28:04

标签: libsvm

当我打开LIBSVM训练数据的示例文件时,我无法理解文件结构。有人可以告诉我如何制作它吗?

以下是我预测歌曲歌曲作者的训练数据(例如):

  • 特写1:歌词中的“爱”字数
  • 功能2:歌词中的“朋友”字数
  • 功能3:歌词中的“区域”字数


培训数据:

  1. 歌曲A(3,0,0),歌曲作家是大卫
  2. 歌曲B(0,3,1),歌曲作家彼得
  3. 歌曲C(1,3,1),歌曲作家汤姆

  4. 测试数据:

    1. Song D(3,0,1)

    2. 非常感谢你。

2 个答案:

答案 0 :(得分:4)

Libsvm ReadMe file可以帮助您

训练数据必须是这样的

  

标签feature1:value1 feature2:value2 ..... -1:? (?可以是任何数字)

但是在Libsvm中有一些名为svm_node的东西可以做同样的事情:

java中的示例代码:

for (int k = 0; k < dataCount; k++) {
        prob.x[k] = new svm_node[features.length];
        for (int j = 0; j < features.length; j++) {
            svm_node node = new svm_node();
            node.index = featuresIndex[j];
            node.value = features[j];
            prob.x[k][j] = node;
        }
        prob.y[k] = lable;
    }

答案 1 :(得分:1)

在这个分类问题中,我们有整个数据集David,Peter,Tom的三个类,我们可以接受它们给它们分别为0,1和2。

数据集的格式为。

[label] [feature number] : [the no of times that feature occurs] .... ....

我们的培训数据文件将如下所示。

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

此文件可用于训练我们的模型。在此文件中有3行和4列,第一列表示实际结果,其他列表示功能编号:功能发生的次数。

测试数据将被视为。

 1:3 2:0 3:1

这将被传递给svm模型,然后可以绘制预测。