Exemplo n.º 1
0
        public void NormalDistribution_MaximumLikelihood_FromClassifiedSample()
        {
            // arrange
            var distr  = new NormalDistribution();
            var sample = new ClassifiedSample <double[]>
            {
                { new[] { -1.0D, 1.0D, 2.0D }, new Class("A", 0) },
                { new[] { 2.0D, 2.0D, 2.5D }, new Class("A", 0) },
                { new[] { 3.0D, 3.0D, 2.6D }, new Class("B", 1) },
                { new[] { 3.5D, 4.0D, 2.8D }, new Class("B", 1) },
            };

            // act
            var res = distr.FromSample(sample);
            var dA1 = res[0][0];
            var dA2 = res[0][1];
            var dA3 = res[0][2];
            var dB1 = res[1][0];
            var dB2 = res[1][1];
            var dB3 = res[1][2];

            // assert
            Assert.AreEqual(0.5D, dA1.Mu, EPS);
            Assert.AreEqual(1.5D, dA1.Sigma, EPS);
            Assert.AreEqual(1.5D, dA2.Mu, EPS);
            Assert.AreEqual(0.5D, dA2.Sigma, EPS);
            Assert.AreEqual(2.25D, dA3.Mu, EPS);
            Assert.AreEqual(0.25D, dA3.Sigma, EPS);
            Assert.AreEqual(3.25D, dB1.Mu, EPS);
            Assert.AreEqual(0.25D, dB1.Sigma, EPS);
            Assert.AreEqual(3.5D, dB2.Mu, EPS);
            Assert.AreEqual(0.5D, dB2.Sigma, EPS);
            Assert.AreEqual(2.7D, dB3.Mu, EPS);
            Assert.AreEqual(0.1D, dB3.Sigma, EPS);
        }
Exemplo n.º 2
0
        public void NormalDistribution_MaximumLikelihood_FromSample()
        {
            // arrange
            var distr  = new NormalDistribution();
            var sample = new[] { -1.0D, 2.0D, 3.0D, 3.5D };

            // act
            distr.FromSample(sample);
            var pars = distr.Params;

            // assert
            Assert.AreEqual(1.875D, pars.Mu);
            Assert.AreEqual(1.74553000547D, pars.Sigma, EPS);
        }