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.###}"); }
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); }