package shared.tester; import shared.Instance; import util.linalg.Vector; /** * A test metric for accuracy. This metric reports of % correct and % incorrect for a test run. * * @author Jesse Rosalia <https://github.com/theJenix> * @date 2013-03-05 */ public class AccuracyTestMetric implements TestMetric { private int count; private int countCorrect; @Override public void addResult(Instance expected, Instance actual) { Comparison c = new Comparison(expected, actual); for (int ii = 0; ii < expected.size(); ii++) { //count up one for each instance count++; if (c.isCorrect(ii)) { //count up one for each correct instance countCorrect++; } } } public void printResults() { //only report results if there were any results to report. if (count > 0) { double pctCorrect = ((double)countCorrect)/count; double pctIncorrect = (1 - pctCorrect); System.out.println(String.format("Correctly Classified Instances: %.02f%%", 100 * pctCorrect)); System.out.println(String.format("Incorrectly Classified Instances: %.02f%%", 100 * pctIncorrect)); } else { System.out.println("No results added."); } } }