Пример #1
0
def test_alpha_symmetry(alpha, dists):
    """
    Tests the alpha -> -alpha symmetry for the alpha divergence, and a similar
    symmetry for the Hellinger and Renyi divergences.
    """
    for dist1, dist2 in product(dists, repeat=2):
        assert alpha_divergence(dist1, dist2, alpha) == pytest.approx(
            alpha_divergence(dist2, dist1, -alpha))
        assert (1. - alpha) * hellinger_divergence(
            dist1, dist2, alpha) == pytest.approx(
                alpha * hellinger_divergence(dist2, dist1, 1. - alpha))
        assert (1. - alpha) * renyi_divergence(
            dist1, dist2, alpha) == pytest.approx(
                alpha * renyi_divergence(dist2, dist1, 1. - alpha))
def test_alpha_symmetry(alpha, dists):
    """
    Tests the alpha -> -alpha symmetry for the alpha divergence, and a similar
    symmetry for the Hellinger and Renyi divergences.
    """
    for dist1, dist2 in product(dists, repeat=2):
        assert alpha_divergence(dist1, dist2, alpha) == pytest.approx(alpha_divergence(dist2, dist1, -alpha))
        assert (1.-alpha)*hellinger_divergence(dist1, dist2, alpha) == pytest.approx(alpha*hellinger_divergence(dist2, dist1, 1.-alpha))
        assert (1.-alpha)*renyi_divergence(dist1, dist2, alpha) == pytest.approx(alpha*renyi_divergence(dist2, dist1, 1.-alpha))
Пример #3
0
def test_alpha_symmetry():
    """
    Tests the alpha -> -alpha symmetry for the alpha divergence, and a similar 
    symmetry for the Hellinger and Renyi divergences.
    """
    alphas = [-1, 0, 0.5, 1, 2]
    test_dists = [get_dists_2(), get_dists_3()]
    for alpha in alphas:
        for dists in test_dists:
            for dist1 in dists:
                for dist2 in dists:
                    assert_almost_equal(alpha_divergence(dist1, dist2, alpha),
                                        alpha_divergence(dist2, dist1, -alpha))
                    assert_almost_equal(
                        (1. - alpha) *
                        hellinger_divergence(dist1, dist2, alpha),
                        alpha * hellinger_divergence(dist2, dist1, 1. - alpha))
                    assert_almost_equal(
                        (1. - alpha) * renyi_divergence(dist1, dist2, alpha),
                        alpha * renyi_divergence(dist2, dist1, 1. - alpha))
def test_alpha_symmetry():
    """
    Tests the alpha -> -alpha symmetry for the alpha divergence, and a similar symmetry for the Hellinger divergence.
    """
    alphas = [-1, 0, 0.5, 1, 2]
    test_dists = [get_dists_2(), get_dists_3()]
    for alpha in alphas:
        for dists in test_dists:
            for dist1 in dists:
                for dist2 in dists:
                    assert_almost_equal(alpha_divergence(dist1, dist2, alpha), alpha_divergence(dist2, dist1, -alpha))
                    assert_almost_equal((1.-alpha)*hellinger_divergence(dist1, dist2, alpha), alpha*hellinger_divergence(dist2, dist1, 1.-alpha))