void showNFoldTypeSpecificAccuracy(InstanceList instanceList, int n) { InstanceList.CrossValidationIterator cvIt = instanceList.crossValidationIterator(n); double accuracies[] = new double[n]; double accuracy = 0; int run = 0; while (cvIt.hasNext()) { InstanceList[] nextSplit = cvIt.nextSplit(); InstanceList trainingInstances = nextSplit[0]; InstanceList testingInstances = nextSplit[1]; double[] result = getTypeSpecificAccuracy(trainingInstances, testingInstances, true); accuracies[run++] = result[2]; accuracy += result[2]; } System.out.println(n + "-Fold cross-validation:"); System.out.println("Accuracy: " + accuracy / n); }
private void showNFoldAccuracy(InstanceList instanceList, int n, int count) { InstanceList.CrossValidationIterator cvIt = instanceList.crossValidationIterator(n); double accuracies[] = new double[n]; double accuracy = 0; int run = 0; double totalTP = 0; while (cvIt.hasNext()) { InstanceList[] nextSplit = cvIt.nextSplit(); InstanceList trainingInstances = nextSplit[0]; InstanceList testingInstances = nextSplit[1]; trainer = new MyClassifierTrainer(new RankMaxEntTrainer()); Classifier classifier = trainer.train(trainingInstances); accuracies[run] = getAccuracy(classifier, testingInstances); accuracy += accuracies[run]; totalTP += accuracies[run] * testingInstances.size(); run++; } System.out.println(n + "-Fold accuracy(avg): " + accuracy / n); System.out.println("Total tp:" + totalTP); System.out.println("Total count:" + count); System.out.println(n + "-Fold accuracy: " + totalTP / count); }