format on save

This commit is contained in:
Martin Bubel 2023-10-10 20:01:46 +02:00
parent 4b427de8fa
commit e92f6df897

View file

@ -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)