示例#1
0
    public void gaussian_parameters_represent_the_data()
    {
      var data = new[] { 1.0, 2.0, 3.0, 4.0, 5.0 };

      var expected = 3;

      var dist = data.Train();

      Assert.That(dist.Mean, Is.EqualTo(expected));
    }
示例#2
0
    public void gaussian_inverse_subtracts_from_a_distribution()
    {
      var data1 = new[] { 1.0, 2.0, 3.0, 4.0, 5.0 };
      var dist1 = data1.Train();

      var data2 = new[] { 4.0, 5.0 };
      var dist2 = data2.Train();

      var expected = (new[] { 1.0, 2.0, 3.0 }).Train();

      var actual = dist1.Add(dist2.Invert());

      Assert.That(actual.Samples, Is.EqualTo(expected.Samples));
      Assert.That(actual.Mean, Is.EqualTo(expected.Mean));
      Assert.That(actual.Variance, Is.EqualTo(expected.Variance));
      Assert.That(actual.Sdev, Is.EqualTo(expected.Sdev));
    }
示例#3
0
    public void add_gaussian_is_homomorphic_with_list_append()
    {
      var data1 = new[] { -1.0, -2.0, -3.0, -4.0, -5.0 };
      var data2 = new[] { 1.0, 2.0, 3.0, 4.0, 5.0 };
      var data3 = data1.Concat(data2);

      var expected = data3.Train();

      var dist1 = data1.Train();
      var dist2 = data2.Train();

      var actual = dist1.Add(dist2);

      Assert.That(actual.Samples, Is.EqualTo(expected.Samples));
      Assert.That(actual.Mean, Is.EqualTo(expected.Mean));
      Assert.That(actual.Variance, Is.EqualTo(expected.Variance));
      Assert.That(actual.Sdev, Is.EqualTo(expected.Sdev));
    }