示例#1
0
        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);
        }
示例#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));
        }