public static double ComputeTwoClassAUC(this BasicEvaluation basicEvaluation) { double positives = basicEvaluation.TP + basicEvaluation.FN; double negatives = basicEvaluation.TN + basicEvaluation.FP; var tprate = positives > 0.0 ? basicEvaluation.TP / positives : 1.0; var fprate = negatives > 0.0 ? basicEvaluation.TN / negatives : 1.0; return((tprate + fprate) / 2.0); }
public static double ComputeMultiClassAUC(int[,] confusionMatrix) { var eval = new BasicEvaluation(); for (int i = 0; i < confusionMatrix.GetLength(0); i++) { eval.TP += confusionMatrix[i, i]; for (int j = 0; j < confusionMatrix.GetLength(0); j++) { if (i != j) { eval.FN += confusionMatrix[i, j]; eval.FP += confusionMatrix[j, i]; eval.TN += confusionMatrix[j, j]; } } } return(ComputeTwoClassAUC(eval)); }