public void LogForwardTest4() { var hmmc = Accord.Tests.Statistics.Models.Fields. MultivariateNormalHiddenMarkovClassifierPotentialFunctionTest.CreateModel3(); for (int c = 0; c < hmmc.Classes; c++) { var hmm = hmmc[c]; var function = new MultivariateNormalMarkovModelFunction(hmm); var sequences = Accord.Tests.Statistics.Models.Fields. MultivariateNormalHiddenMarkovClassifierPotentialFunctionTest.inputTest; for (int i = 0; i < sequences.Length; i++) { var observations = sequences[i]; double expectedLogLikelihood; double[,] expected = Accord.Statistics.Models.Markov .ForwardBackwardAlgorithm.LogForward(hmm, observations, out expectedLogLikelihood); double actualLogLikelihood; double[,] actual = Accord.Statistics.Models.Fields. ForwardBackwardAlgorithm.LogForward(function.Factors[0], observations, 0, out actualLogLikelihood); Assert.IsTrue(expected.IsEqual(actual, 1e-10)); Assert.AreEqual(expectedLogLikelihood, actualLogLikelihood, 1e-6); Assert.IsFalse(Double.IsNaN(actualLogLikelihood)); } } }
public void LogForwardTest4() { var hmmc = Accord.Tests.Statistics.Models.Fields. MultivariateNormalHiddenMarkovClassifierPotentialFunctionTest.CreateModel3(); for (int c = 0; c < hmmc.Classes; c++) { var hmm = hmmc[c]; var function = new MultivariateNormalMarkovModelFunction(hmm); var sequences = Accord.Tests.Statistics.Models.Fields. MultivariateNormalHiddenMarkovClassifierPotentialFunctionTest.inputTest; for (int i = 0; i < sequences.Length; i++) { var observations = sequences[i]; double expectedLogLikelihood; double[,] expected = Accord.Statistics.Models.Markov .ForwardBackwardAlgorithm.LogForward(hmm, observations, out expectedLogLikelihood); double actualLogLikelihood; double[,] actual = Accord.Statistics.Models.Fields. ForwardBackwardAlgorithm.LogForward(function.Factors[0], observations, 0, out actualLogLikelihood); Assert.IsTrue(expected.IsEqual(actual, 1e-10)); Assert.AreEqual(expectedLogLikelihood, actualLogLikelihood, 1e-6); Assert.IsFalse(Double.IsNaN(actualLogLikelihood)); } } }