Accord.Tests.Statistics.MultivariateMixtureDistributionTest.FitTest C# (CSharp) Méthode

FitTest() private méthode

private FitTest ( ) : void
Résultat void
        public void FitTest()
        {
            double[] coefficients = { 0.50, 0.50 };

            MultivariateNormalDistribution[] components = new MultivariateNormalDistribution[2];
            components[0] = new MultivariateNormalDistribution(new double[] { 2 }, new double[,] { { 1 } });
            components[1] = new MultivariateNormalDistribution(new double[] { 5 }, new double[,] { { 1 } });

            var target = new MultivariateMixture<MultivariateNormalDistribution>(coefficients, components);

            double[][] values = { new double[] { 0 },
                                  new double[] { 1 }, 
                                  new double[] { 1 },
                                  new double[] { 0 },
                                  new double[] { 1 },
                                  new double[] { 6 },
                                  new double[] { 6 },
                                  new double[] { 5 },
                                  new double[] { 7 },
                                  new double[] { 5 } };

            double[][] part1 = values.Submatrix(0, 4);
            double[][] part2 = values.Submatrix(5, 9);



            target.Fit(values);


            var mean1 = Measures.Mean(part1, dimension: 0);
            var var1 = Measures.Variance(part1);
            Assert.AreEqual(mean1[0], target.Components[0].Mean[0], 1e-5);
            Assert.AreEqual(var1[0], target.Components[0].Variance[0], 1e-5);

            var mean2 = Measures.Mean(part2, dimension: 0);
            var var2 = Measures.Variance(part2);
            Assert.AreEqual(mean2[0], target.Components[1].Mean[0], 1e-5);
            Assert.AreEqual(var2[0], target.Components[1].Variance[0], 1e-5);


            var expectedMean = Measures.Mean(values, dimension: 0);
            var expectedVar = Measures.Covariance(values);

            var actualMean = target.Mean;
            var actualVar = target.Covariance;

            Assert.AreEqual(expectedMean[0], actualMean[0], 0.0000001);
            // Assert.AreEqual(expectedVar[0, 0], actualVar[0, 0], 0.0000001);
        }