public void BernoulliDistribution_MaximumLikelihood_FromClassifiedSample() { // arrange var distr = new BernoulliDistribution(); var sample = new ClassifiedSample <double[]> { { new[] { 1.0D, 1.0D, 0.0D }, new Class("A", 0) }, { new[] { 1.0D, 0.0D, 1.0D }, new Class("A", 0) }, { new[] { 0.0D, 0.0D, 1.0D }, new Class("B", 1) }, { new[] { 0.0D, 0.0D, 0.0D }, 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(1.0D, dA1.P, EPS); Assert.AreEqual(0.5D, dA2.P, EPS); Assert.AreEqual(0.5D, dA3.P, EPS); Assert.AreEqual(0.0D, dB1.P, EPS); Assert.AreEqual(0.0D, dB2.P, EPS); Assert.AreEqual(0.5D, dB3.P, EPS); }
public void BernoulliDistribution_MaximumLikelihood_FromSample() { // arrange var distr = new BernoulliDistribution(); var sample = new[] { 1.0D, 1.0D, 0.0D, 1.0D }; // act distr.FromSample(sample); var pars = distr.Params; // assert Assert.AreEqual(0.75D, pars.P); }