public static final long totalCorrect(Matrix confusionMatrix) { VerifyUtil.verifySquare(confusionMatrix); return (long) confusionMatrix.trace(); }
public static final double accuracy(Matrix confusionMatrix) { VerifyUtil.verifySquare(confusionMatrix); return totalCorrect(confusionMatrix) / confusionMatrix.getValueSum(); }
public static double f1MeasureMacro(Matrix confusionMatrix) { VerifyUtil.verifySquare(confusionMatrix); double sum = 0; for (int catIndex = 0; catIndex < confusionMatrix.getRowCount(); catIndex++) { sum += f1Measure(confusionMatrix, catIndex); } return sum / confusionMatrix.getRowCount(); }
public static double recallMacro(Matrix confusionMatrix) { VerifyUtil.verifySquare(confusionMatrix); double sum = 0; for (int catIndex = 0; catIndex < confusionMatrix.getRowCount(); catIndex++) { sum += recall(confusionMatrix, catIndex); } return sum / confusionMatrix.getRowCount(); }
public static double precisionMacro(Matrix confusionMatrix) { VerifyUtil.verifySquare(confusionMatrix); double sum = 0; for (int catIndex = 0; catIndex < confusionMatrix.getRowCount(); catIndex++) { sum += precision(confusionMatrix, catIndex); } return sum / confusionMatrix.getRowCount(); }
public static double f1Measure(Matrix confusionMatrix, long catIndex) { VerifyUtil.verifySquare(confusionMatrix); return f1Measure(precision(confusionMatrix, catIndex), recall(confusionMatrix, catIndex)); }
public static double precision(Matrix confusionMatrix, long catIndex) { VerifyUtil.verifySquare(confusionMatrix); double tp = confusionMatrix.getAsDouble(catIndex, catIndex); double fp = 0; for (int c = 0; c < confusionMatrix.getRowCount(); c++) { if (c == catIndex) { continue; } fp += confusionMatrix.getAsDouble(catIndex, c); } return precision(tp, fp); }
public static double recall(Matrix confusionMatrix, long catIndex) { VerifyUtil.verifySquare(confusionMatrix); double tp = confusionMatrix.getAsDouble(catIndex, catIndex); double fn = 0; for (int r = 0; r < confusionMatrix.getRowCount(); r++) { if (r == catIndex) { continue; } fn += confusionMatrix.getAsDouble(r, catIndex); } return recall(tp, fn); }