Accord.Tests.Statistics.Models.Markov.ForwardBackwardAlgorithmTest.LogForwardTest2 C# (CSharp) Méthode

LogForwardTest2() private méthode

private LogForwardTest2 ( ) : void
Résultat void
        public void LogForwardTest2()
        {
            HiddenMarkovModel hmm = Accord.Tests.Statistics.Models.Markov.
                ForwardBackwardAlgorithmTest.CreateModel2();

            int[] observations = { 0, 1, 1, 0 };

            double[,] expected = Matrix.Log(
                ForwardBackwardAlgorithm.Forward(hmm, observations));

            double logLikelihood;
            double[,] actual = 
                ForwardBackwardAlgorithm.LogForward(hmm, observations, out logLikelihood);

            Assert.IsTrue(expected.IsEqual(actual, 1e-10));

            double p = 0;
            for (int i = 0; i < hmm.States; i++)
                p += Math.Exp(actual[observations.Length - 1, i]);

            Assert.AreEqual(0.054814695, p, 1e-8);
            Assert.IsFalse(double.IsNaN(p));
        }