Exemple #1
0
# Dimensions of system
dim = 3
active_dimensions=np.arange(0, dim)

f = open("rmse.dat", "a")

for N1, N2 in zip(Nt1, Nt2):

    # Level 1 training set
    train, test = data_sampler.smart_random(E1, N1, n_test=None)
    X1, Y1 = np.split(E1[train], [dim], axis=1)

    #  Train level 1
    k1 = GPy.kern.RBF(dim, ARD=True)
    m1 = ordinary.optimize(X1, Y1, k1, normalize=True, restarts=12)
    mu1, v1 = ordinary.predict(m1, Xtest, full_cov=True)

    # Level 2 training set
    train2, test2 = data_sampler.smart_random2(E2, N2, train, test)
    X2, Y2 = np.split(E2[train2], [dim], axis=1)

    # Predict level 1 at X2
    mu1_, v1_ = ordinary.predict(m1, X2, full_cov=True)

    # Train level 2
    XX = np.hstack((X2, mu1_))
    k2 = GPy.kern.RBF(1, active_dims = [dim]) * GPy.kern.RBF(dim, active_dims = active_dimensions, ARD = True) \
        + GPy.kern.RBF(dim, active_dims = active_dimensions, ARD = True)
    m2 = GPy.models.GPRegression(X=XX, Y=Y2, kernel=k2, normalizer=True)
    m2.optimize(max_iters=1000)
    m2.optimize_restarts(12, optimizer='bfgs', max_iters=1000)
Exemple #2
0
X0, Y0 = np.split(T0, 2, axis=1)

# Level 1 training set
Nt1 = 10
i1 = np.random.choice(i0, size=Nt1)
T1 = np.array([E1[i] for i in i1])
X1, Y1 = np.split(T1, 2, axis=1)

# Test set
Xtest = matrix.Col(E1[:, 0])

# Optimize level 1
m0 = ordinary.optimize(X0, Y0)

# Optimize level 2
mu0, C0 = ordinary.predict(m0, X1, full_cov=True)
m1 = nargp.optimize(mu0, X1, Y1)

# Predict level 1
mu0, C0 = ordinary.predict(m0, Xtest, full_cov=True)
S0 = np.sqrt(np.diag(C0))

# Predict Level 2
mu1, C1 = nargp.predict(m1, mu0, C0, Xtest)
S1 = np.sqrt(C1)

# Row vectors for plotting
mu0, S0 = np.ravel(mu0), np.ravel(S0)
mu1, S1 = np.ravel(mu1), np.ravel(S1)

# Prediction error
Exemple #3
0
import GPy
import numpy as np
from ARGP import ordinary
from ARGP import data_sampler

E = np.loadtxt("surfaces/ccsd-t-5z.dat", delimiter=',', skiprows=1)
E[:, -1] += 76.203896662997

# Test set
Xtest = E[:, :-1]
dim = len(Xtest.T)

# Training set size
Nt = 120

# Sample training set
train, test = data_sampler.smart_random(E, Nt, n_test=None)
T = E[train]
X1, Y1 = np.split(T, [dim], axis=1)

#  Ordinary GP regression
kernel = GPy.kern.RBF(dim, ARD=True)
model = ordinary.optimize(X1, Y1, kernel, normalize=True, restarts=10)
mu, v = ordinary.predict(model, Xtest)

# Calculate error
exact = E[:, -1].reshape(-1, 1)
error = 1000 * np.sqrt(np.mean((mu - exact)**2))
print("Test error: {:>5.3} mEh".format(error))