如何使用LibSVM执行十倍交叉验证?

时间:2011-03-12 11:25:25

标签: java python validation libsvm

在哪里可以找到使用LibSVM(Java / Python)对数据集进行10倍交叉验证的示例?

2 个答案:

答案 0 :(得分:5)

如果是Java;

您可以使用libsvm提供的svm_cross_validation()方法。

double[] target = new double[svmProblem.l];
svm.svm_cross_validation(svmProblem, svmParameter, 10, target );

您应该已经创建了svm_problem和svm_parameter实例(示例中的svmProblem和svmParameter)。函数的第三个参数是折叠数,target是数据集的每个样本的预测标签值的数组。因此,目标数组的长度应与输入数据的长度相同。

答案 1 :(得分:0)

除非我在您的问题中遗漏了某些内容,svmutil.py包的python子目录中的libsvm脚本提供了n倍交叉验证模式:

-v n: n-fold cross validation mode

svm_train.java子目录中的java文件也提供了这样的选项:

+"-v n : n-fold cross validation mode\n"

您可以查看这两个文件以获取示例代码。

相关问题