在哪里可以找到使用LibSVM(Java / Python)对数据集进行10倍交叉验证的示例?
答案 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"
您可以查看这两个文件以获取示例代码。