【问题标题】:Does libsvm work for multi output regression?libsvm 是否适用于多输出回归?
【发布时间】:2014-06-23 18:24:49
【问题描述】:

我一直在尝试使用jlibSVM 我想将它用于多输出回归。

例如我的: 功能集/输入将是 x1,x2,x3 并且输出/目标值将是 y1,y2

这可以使用 libSVM 库吗?

API 文档不清楚,也没有显示使用 jlibsvm 的示例应用,所以我尝试修改 lexecyexec/svm_train.java 中的代码

作者最初创建的应用程序仅使用一个输出/目标值。

这在作者尝试阅读训练文件的部分中可以看到:

private void read_problem() throws IOException
    {
    BufferedReader fp = new BufferedReader(new FileReader(input_file_name));
    Vector<Float> vy = new Vector<Float>();
    Vector<SparseVector> vx = new Vector<SparseVector>();
    int max_index = 0;

    while (true)
        {
        String line = fp.readLine();
        if (line == null)
            {
            break;
            }

        StringTokenizer st = new StringTokenizer(line, " \t\n\r\f:");

        vy.addElement(Float.parseFloat(st.nextToken()));
        int m = st.countTokens() / 2;
        SparseVector x = new SparseVector(m);
        for (int j = 0; j < m; j++)
            {
            //x[j] = new svm_node();
            x.indexes[j] = Integer.parseInt(st.nextToken());
            x.values[j] = Float.parseFloat(st.nextToken());
            }
        if (m > 0)
            {
            max_index = Math.max(max_index, x.indexes[m - 1]);
            }
        vx.addElement(x);
        }

我尝试对其进行修改,以便向量 vy 接受具有 2 个值的稀疏向量。

程序已执行,但模型文件似乎有误。

谁能验证他们是否使用 jlibsvm 进行多输出 svm 回归???

如果是,有人可以解释一下他们是如何做到这一点的吗?

如果没有,那么有人知道 Java 中类似的 svm 实现吗?

【问题讨论】:

    标签: java vector regression svm


    【解决方案1】:

    经典的 SVM 算法不支持多维输出。解决此问题的一种方法是为每个输出维度建立一个 SVM 模型。

    【讨论】:

      猜你喜欢
      • 2017-10-08
      • 2018-12-05
      • 1970-01-01
      • 2018-08-29
      • 2014-01-14
      • 2018-03-22
      • 2016-02-10
      • 2012-06-20
      • 2018-02-14
      相关资源
      最近更新 更多