public BenchmarkStatistics(int numOfFeatureClasses)
 {
     MacroAccuracy        = new StatValue();
     MicroAccuracy        = new StatValue();
     LogLoss              = new StatValue();
     LogLossReduction     = new StatValue();
     TimeTakenMiliSeconds = new StatValue();
     StatConfusionMatrix  = new StatConfusionMatrix(numOfFeatureClasses);
 }
        /// <summary>
        /// Creates a stat confusion matrix. Requires <see cref="MachineLearning.IDtoEmotion"/> to be set up.
        /// </summary>
        /// <param name="numOfClasses"></param>
        public StatConfusionMatrix(int numOfClasses)
        {
            // Get names of emotions.
            IdToEmotionName = MachineLearning.IDtoEmotion;

            // Setup the rest of the values.
            PerClassPrescision = new Dictionary <int, StatValue>(numOfClasses);
            PerClassRecall     = new Dictionary <int, StatValue>(numOfClasses);
            RecallMatrix       = new StatValue[numOfClasses, numOfClasses];

            for (int i = 0; i < numOfClasses; ++i)
            {
                PerClassRecall[i]     = new StatValue();
                PerClassPrescision[i] = new StatValue();

                for (int j = 0; j < numOfClasses; ++j)
                {
                    RecallMatrix[i, j] = new StatValue();
                }
            }
        }