diff --git a/GPy/testing/tp_tests.py b/GPy/testing/tp_tests.py index 643d67e0..ac35e38f 100644 --- a/GPy/testing/tp_tests.py +++ b/GPy/testing/tp_tests.py @@ -1,10 +1,11 @@ -''' +""" Created on 14 Jul 2017, based on gp_tests @author: javdrher -''' +""" import unittest -import numpy as np, GPy +import numpy as np +import GPy class Test(unittest.TestCase): @@ -13,9 +14,9 @@ class Test(unittest.TestCase): self.N = 20 self.N_new = 50 self.D = 1 - self.X = np.random.uniform(-3., 3., (self.N, 1)) + self.X = np.random.uniform(-3.0, 3.0, (self.N, 1)) self.Y = np.sin(self.X) + np.random.randn(self.N, self.D) * 0.05 - self.X_new = np.random.uniform(-3., 3., (self.N_new, 1)) + self.X_new = np.random.uniform(-3.0, 3.0, (self.N_new, 1)) def test_setxy_gp(self): k = GPy.kern.RBF(1) + GPy.kern.White(1) @@ -23,7 +24,7 @@ class Test(unittest.TestCase): mu, var = m.predict(m.X) X = m.X.copy() m.set_XY(m.X[:10], m.Y[:10]) - assert (m.checkgrad(tolerance=1e-2)) + assert m.checkgrad(tolerance=1e-2) m.set_XY(X, self.Y) mu2, var2 = m.predict(m.X) np.testing.assert_allclose(mu, mu2) @@ -34,9 +35,9 @@ class Test(unittest.TestCase): from GPy.core.mapping import Mapping class Parabola(Mapping): - def __init__(self, variance, degree=2, name='parabola'): + def __init__(self, variance, degree=2, name="parabola"): super(Parabola, self).__init__(1, 1, name) - self.variance = Param('variance', np.ones(degree + 1) * variance) + self.variance = Param("variance", np.ones(degree + 1) * variance) self.degree = degree self.link_parameter(self.variance) @@ -59,12 +60,17 @@ class Test(unittest.TestCase): X = np.linspace(-2, 2, 100)[:, None] k = GPy.kern.RBF(1) + GPy.kern.White(1) k.randomize() - p = Parabola(.3) + p = Parabola(0.3) p.randomize() - Y = p.f(X) + np.random.multivariate_normal(np.zeros(X.shape[0]), k.K(X) + np.eye(X.shape[0]) * 1e-8)[:, - None] + np.random.normal(0, .1, (X.shape[0], 1)) + Y = ( + p.f(X) + + np.random.multivariate_normal( + np.zeros(X.shape[0]), k.K(X) + np.eye(X.shape[0]) * 1e-8 + )[:, None] + + np.random.normal(0, 0.1, (X.shape[0], 1)) + ) m = GPy.models.TPRegression(X, Y, kernel=k, mean_function=p) - assert (m.checkgrad(tolerance=2e-1)) + assert m.checkgrad(tolerance=2e-1) _ = m.predict(m.X) def test_normalizer(self): @@ -73,7 +79,7 @@ class Test(unittest.TestCase): mu, std = Y.mean(0), Y.std(0) m = GPy.models.TPRegression(self.X, Y, kernel=k, normalizer=True) m.optimize() - assert (m.checkgrad()) + assert m.checkgrad() k = GPy.kern.RBF(1) + GPy.kern.White(1) m2 = GPy.models.TPRegression(self.X, (Y - mu) / std, kernel=k, normalizer=False) m2[:] = m[:] @@ -81,13 +87,13 @@ class Test(unittest.TestCase): mu1, var1 = m.predict(m.X, full_cov=True) mu2, var2 = m2.predict(m2.X, full_cov=True) np.testing.assert_allclose(mu1, (mu2 * std) + mu) - np.testing.assert_allclose(var1, var2 * std ** 2) + np.testing.assert_allclose(var1, var2 * std**2) mu1, var1 = m.predict(m.X, full_cov=False) mu2, var2 = m2.predict(m2.X, full_cov=False) np.testing.assert_allclose(mu1, (mu2 * std) + mu) - np.testing.assert_allclose(var1, var2 * std ** 2) + np.testing.assert_allclose(var1, var2 * std**2) q50n = m.predict_quantiles(m.X, (50,)) q50 = m2.predict_quantiles(m2.X, (50,)) @@ -102,8 +108,11 @@ class Test(unittest.TestCase): q95 = m2.predict_quantiles(self.X[[c]], qs) mu, var = m2.predict(self.X[[c]]) from scipy.stats import t - np.testing.assert_allclose((mu + (t.ppf(qs / 100., m2.nu + m2.num_data) * np.sqrt(var))).flatten(), - np.array(q95).flatten()) + + np.testing.assert_allclose( + (mu + (t.ppf(qs / 100.0, m2.nu + m2.num_data) * np.sqrt(var))).flatten(), + np.array(q95).flatten(), + ) def test_predict_equivalence(self): k = GPy.kern.RBF(1) + GPy.kern.White(1)