public Evaluation() { this.topN = 1; confusion = new ConfusionMatrix<>(); }
private ConfusionMatrix<Integer> confusion() { if (confusion != null) return confusion; confusion = new ConfusionMatrix<>(); return confusion; }
private void createConfusion(int nClasses) { List<Integer> classes = new ArrayList<>(); for (int i = 0; i < nClasses; i++) { classes.add(i); } confusion = new ConfusionMatrix<>(classes); }
/** * Return the number of correct predictions according to top N value. For top N = 1 (default) this is equivalent to * the number of correct predictions * @return Number of correct top N predictions */ public int getTopNCorrectCount() { if (confusion == null) confusion = new ConfusionMatrix<>(); if (topN <= 1) { int nClasses = confusion().getClasses().size(); int countCorrect = 0; for (int i = 0; i < nClasses; i++) { countCorrect += confusion().getCount(i, i); } return countCorrect; } return topNCorrectCount; }
public static void main(String[] args) { ConfusionMatrix<String> confusionMatrix = new ConfusionMatrix<>(Arrays.asList("a", "b", "c")); confusionMatrix.add("a", "a", 88); confusionMatrix.add("a", "b", 10); confusionMatrix.add("b", "a", 14); confusionMatrix.add("b", "b", 40); confusionMatrix.add("b", "c", 6); confusionMatrix.add("c", "a", 18); confusionMatrix.add("c", "b", 10); confusionMatrix.add("c", "c", 12); ConfusionMatrix<String> confusionMatrix2 = new ConfusionMatrix<>(confusionMatrix); confusionMatrix2.add(confusionMatrix); System.out.println(confusionMatrix2.toHTML()); System.out.println(confusionMatrix2.toCSV()); } }
ConfusionMatrix<Integer> cm = new ConfusionMatrix<>(classes);
confusion = new ConfusionMatrix<>(other.confusion); } else { if (other.confusion != null)