Ejemplo n.º 1
0
def test_marginal_distribution():
    """Test moments from marginal MVN."""
    random_state = check_random_state(0)
    mvn = MVN(mean=mean, covariance=covariance, random_state=random_state)

    marginalized = mvn.marginalize(np.array([0]))
    assert_equal(marginalized.mean, np.array([0.0]))
    assert_equal(marginalized.covariance, np.array([0.5]))
    marginalized = mvn.marginalize(np.array([1]))
    assert_equal(marginalized.mean, np.array([1.0]))
    assert_equal(marginalized.covariance, np.array([5.0]))
Ejemplo n.º 2
0
def test_marginal_distribution():
    """Test moments from marginal MVN."""
    random_state = check_random_state(0)
    mvn = MVN(mean=mean, covariance=covariance, random_state=random_state)

    marginalized = mvn.marginalize(np.array([0]))
    assert_equal(marginalized.mean, np.array([0.0]))
    assert_equal(marginalized.covariance, np.array([0.5]))
    marginalized = mvn.marginalize(np.array([1]))
    assert_equal(marginalized.mean, np.array([1.0]))
    assert_equal(marginalized.covariance, np.array([5.0]))
Ejemplo n.º 3
0
def test_marginal_distribution():
    random_state = check_random_state(0)

    mean = np.array([0.0, 1.0])
    covariance = np.array([[0.5, -1.0], [-1.0, 5.0]])
    mvn = MVN(mean=mean, covariance=covariance, random_state=random_state)
    marginalized = mvn.marginalize(np.array([0]))
    assert_equal(marginalized.mean, np.array([0.0]))
    assert_equal(marginalized.covariance, np.array([0.5]))
Ejemplo n.º 4
0
    mvn = MVN(random_state=random_state)
    X = random_state.multivariate_normal([0.0, 1.0], [[0.5, -2.0], [-2.0, 5.0]],
                                         size=(100,))
    mvn.from_samples(X)
    X_sampled = mvn.sample(n_samples=100)

    plt.figure(figsize=(15, 5))
    plt.subplot(1, 3, 1)
    plt.xlim((-10, 10))
    plt.ylim((-10, 10))
    plot_error_ellipse(plt.gca(), mvn)
    plt.scatter(X[:, 0], X[:, 1], c="g", label="Training data")
    plt.scatter(X_sampled[:, 0], X_sampled[:, 1], c="r", label="Samples")
    plt.title("Bivariate Gaussian")
    plt.legend(loc="best")

    x = np.linspace(-10, 10, 100)
    plt.subplot(1, 3, 2)
    plt.xticks(())
    marginalized = mvn.marginalize(np.array([1]))
    plt.plot(marginalized.to_probability_density(x[:, np.newaxis]), x)
    plt.title("Marginal distribution over y")

    plt.subplot(1, 3, 3)
    plt.yticks(())
    marginalized = mvn.marginalize(np.array([0]))
    plt.plot(x, marginalized.to_probability_density(x[:, np.newaxis]))
    plt.title("Marginal distribution over x")

    plt.show()
Ejemplo n.º 5
0
mvn = MVN(random_state=random_state)
X = random_state.multivariate_normal([0.0, 1.0], [[0.5, 1.5], [1.5, 5.0]],
                                     size=(100,))
mvn.from_samples(X)
X_sampled = mvn.sample(n_samples=100)

plt.figure(figsize=(15, 5))
plt.subplot(1, 3, 1)
plt.xlim((-10, 10))
plt.ylim((-10, 10))
plot_error_ellipse(plt.gca(), mvn)
plt.scatter(X[:, 0], X[:, 1], c="g", label="Training data")
plt.scatter(X_sampled[:, 0], X_sampled[:, 1], c="r", label="Samples")
plt.title("Bivariate Gaussian")
plt.legend(loc="best")

x = np.linspace(-10, 10, 100)
plt.subplot(1, 3, 2)
plt.xticks(())
marginalized = mvn.marginalize(np.array([1]))
plt.plot(marginalized.to_probability_density(x[:, np.newaxis]), x)
plt.title("Marginal distribution over y")

plt.subplot(1, 3, 3)
plt.yticks(())
marginalized = mvn.marginalize(np.array([0]))
plt.plot(x, marginalized.to_probability_density(x[:, np.newaxis]))
plt.title("Marginal distribution over x")

plt.show()