【问题标题】:cross validation accuracy in libsvm javalibsvm java中的交叉验证准确性
【发布时间】:2013-12-06 10:18:58
【问题描述】:

我在 java 中使用 LIBSVM,我需要计算 AUC 值。自述文件说我们可以使用 -v 选项将数据拆分为 n 个部分并计算交叉验证准确度/均方误差,但在 java 中我使用的是没有 -v 选项的 svm_train 函数(它有 SVM 问题和 SVM 参数作为输入)。所以我使用svm_cross_validation 函数如下,但它不返回目标数组中的准确性(返回标签)。

svm.svm_cross_validation(SVM_Prob, SVM_Param, 3, target);

我得到如下结果,但没有显示任何准确性

optimization finished, #iter = 21
nu = 0.06666666666666667
obj = -21.0, rho = 0.0
nSV = 42, nBSV = 0
Total nSV = 42

我的数据不是不平衡的,所以我不确定是否应该使用 LibLINEAR。 谁能告诉我如何在 java 中找到 libsvm 的交叉验证准确性。

谢谢!

【问题讨论】:

    标签: java machine-learning svm libsvm


    【解决方案1】:

    你可以自己写一个简单的:

    double[] target = new double[labels.length];
    
    svm.svm_cross_validation(problem, param, 3, target);
    double correctCounter = 0;
    for (int i = 0; i < target.length; i++) {
       if (target[i] == labels[i]) {
          correctCounter++;
       } 
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 2015-04-21
      • 2014-07-25
      • 2020-05-15
      • 2022-01-19
      • 2016-04-05
      • 2017-09-27
      • 2015-01-08
      • 2013-09-14
      相关资源
      最近更新 更多