Ejemplo n.º 1
0
        static void Test(HiddenMarkovModel hmm, ParseTarget target)
        {
            string filePath = GetFilePath(".csv", "Please enter path to test data file:");
            Tuple <int[][], int[][]> xAndY = GetTransformedData(filePath, target);

            Console.WriteLine("Testing model...");
            ModelTester   tester  = new ModelTester(hmm);
            HMMTestResult results = tester.Test(xAndY);

            Console.WriteLine("Results:");
            Console.WriteLine($"    Total Accuracy: {results.TotalAccuracy:0.###}");
            Console.WriteLine($"    Average Accuracy: {results.AverageAccuracy:0.###}");
        }
Ejemplo n.º 2
0
        public HMMTestResult Test(Tuple <int[][], int[][]> xAndY)
        {
            int[][]       predicted = HMM.Decide(xAndY.Item1);
            HMMTestResult result    = predicted
                                      .Zip(xAndY.Item2, (pred, actual) => new HMMTestResult
            {
                TotalAccuracy   = pred.SequenceEqual(actual) ? 1 : 0,
                AverageAccuracy = pred.Zip(actual, (p, a) => p == a ? 1 : 0).Sum() / (float)pred.Count()
            }).Aggregate((curr, accum) =>
            {
                accum.TotalAccuracy   += curr.TotalAccuracy;
                accum.AverageAccuracy += curr.AverageAccuracy;
                return(accum);
            });

            result.TotalAccuracy   /= predicted.Count();
            result.AverageAccuracy /= predicted.Count();
            return(result);
        }