Exemplo n.º 1
0
        /// <summary>
        /// Reports to log.
        /// </summary>
        /// <param name="report">The report.</param>
        /// <param name="logger">The logger.</param>
        public static void ReportToLog(this IClassificationReport report, ILogBuilder logger)
        {
            logger.AppendHeading(report.Name);
            logger.AppendPair("Classifier", report.Classifier);
            logger.AppendPair("F1-Measure", report.F1measure.ToString("F5"), true, "\t\t");

            logger.AppendPair("Precission", report.Precision.ToString("F5"), true, "\t\t");
            logger.AppendPair("Recall", report.Recall.ToString("F5"), true, "\t\t");

            logger.AppendPair("Total tests", report.Targets, true, "\t\t");
            logger.AppendPair("Correct", report.Correct, true, "\t\t");
        }
Exemplo n.º 2
0
 /// <summary>
 /// Divides the values stored in the report
 /// </summary>
 /// <param name="a">a.</param>
 /// <param name="divisor">The divisor.</param>
 /// <param name="OnlyRatios">if set to <c>true</c> [only ratios].</param>
 public static void DivideValues(this IClassificationReport a, Double divisor, Boolean OnlyRatios = true)
 {
     a.Precision = a.Precision.GetRatio(divisor);
     a.Recall    = a.Recall.GetRatio(divisor);
     a.F1measure = a.F1measure.GetRatio(divisor);
     if (!OnlyRatios)
     {
         a.Correct = a.Correct.GetRatio(divisor);
         a.Targets = a.Targets.GetRatio(divisor);
         a.Wrong   = a.Wrong.GetRatio(divisor);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// Sets or Adds the values from specified <c>metrics</c> object.
        /// </summary>
        /// <param name="a">a.</param>
        /// <param name="metrics">The metrics.</param>
        /// <param name="method">The method of ratios computation (F1, Precision, Recall)</param>
        public static void AddValues(this IClassificationReport a, classificationEvalMetricSet metrics, classificationMetricComputation method)
        {
            a.Precision += metrics.GetPrecision(method);
            a.Recall    += metrics.GetRecall(method);
            a.F1measure += metrics.GetF1(method);

            foreach (var p in metrics)
            {
                a.Correct += p.Value.correct;
                a.Wrong   += p.Value.wrong;
                a.Targets += p.Value.correct + p.Value.wrong;
            }

            a.method = method;
        }
Exemplo n.º 4
0
        /// <summary>
        /// Adds the values from specified <c>source</c>
        /// </summary>
        /// <param name="a">a.</param>
        /// <param name="source">The source.</param>
        public static void AddValues(this IClassificationReport a, IClassificationReport source)
        {
            a.Precision += source.Precision;
            a.Recall    += source.Recall;
            a.F1measure += source.F1measure;
            a.Correct   += source.Correct;
            a.Targets   += source.Targets;
            a.Wrong     += source.Wrong;

            if (a is classificationReport cReport)
            {
                if (source is classificationReport sReport)
                {
                    cReport.data.Merge(sReport.data);
                }
            }
        }