libsvm java中的交叉验证准确性
Posted
技术标签:
【中文标题】libsvm java中的交叉验证准确性【英文标题】:cross validation accuracy in libsvm 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 的交叉验证准确性。
谢谢!
【问题讨论】:
【参考方案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++;
【讨论】:
以上是关于libsvm java中的交叉验证准确性的主要内容,如果未能解决你的问题,请参考以下文章