コード例 #1
0
        void IAiTest.Evaluate()
        {
            IDataView dataView = _context.Data.LoadFromTextFile <GitHubIssue>($"{RootFolder}/{EvaluateDataFile}", hasHeader: true);

            Console.WriteLine("=============== Evaluating Model accuracy with Test data===============");
            var predictions = _model.Transform(dataView);
            var metrics     = _context.MulticlassClassification.Evaluate(predictions, "Area", "Score");

            Common.ConsoleHelper.PrintMultiClassClassificationMetrics(_trainer.ToString(), metrics);
            Utility.SaveModelAsFile(_context, _model, dataView, $"{RootFolder}/{ModelFileName}");
        }
コード例 #2
0
 /// <summary>
 /// Show accuracy stats.
 /// </summary>
 /// <param name="trainer"></param>
 /// <param name="metrics"></param>
 private static void ShowAccuracyStats(EstimatorChain <KeyToValueMappingTransformer> trainer, MulticlassClassificationMetrics metrics)
 {
     Console.WriteLine($"************************************************************");
     Console.WriteLine($"*    Metrics for {trainer.ToString()} multi-class classification model   ");
     Console.WriteLine($"*-----------------------------------------------------------");
     Console.WriteLine($"    AccuracyMacro = {metrics.MacroAccuracy.ToString(CultureInfo.CurrentCulture)}, a value between 0 and 1, the closer to 1, the better");
     Console.WriteLine($"    AccuracyMicro = {metrics.MicroAccuracy.ToString(CultureInfo.CurrentCulture)}, a value between 0 and 1, the closer to 1, the better");
     Console.WriteLine($"    LogLoss = {metrics.LogLoss.ToString(CultureInfo.CurrentCulture)}, the closer to 0, the better");
     Console.WriteLine($"    LogLoss for class 1 = {metrics.PerClassLogLoss[0].ToString(CultureInfo.CurrentCulture)}, the closer to 0, the better");
     Console.WriteLine($"    LogLoss for class 2 = {metrics.PerClassLogLoss[1].ToString(CultureInfo.CurrentCulture)}, the closer to 0, the better");
     Console.WriteLine($"    LogLoss for class 3 = {metrics.PerClassLogLoss[2].ToString(CultureInfo.CurrentCulture)}, the closer to 0, the better");
     Console.WriteLine($"************************************************************");
 }