Example #1
0
def gen_dataset(nt, d, lb, ub, kindex, hyp, s=1e-9):
    X = draw_support(d, lb, ub, nt, SUPPORT_UNIFORM)
    D = [[sp.NaN]] * (nt)
    kf = GPdc.kernel(kindex, d, hyp)
    Kxx = GPdc.buildKsym_d(kf, X, D)
    Y = spl.cholesky(Kxx, lower=True) * sp.matrix(sps.norm.rvs(
        0, 1., nt)).T + sp.matrix(sps.norm.rvs(0, sp.sqrt(s), nt)).T
    S = sp.matrix([s] * nt).T
    return [X, Y, S, D]
Example #2
0
def gen_dataset(nt, d, lb, ub, kindex, hyp, s=1e-9):
    X = draw_support(d, lb, ub, nt, SUPPORT_UNIFORM)
    D = [[sp.NaN]] * (nt)
    kf = GPdc.kernel(kindex, d, hyp)
    Kxx = GPdc.buildKsym_d(kf, X, D)
    Y = (
        spl.cholesky(Kxx, lower=True) * sp.matrix(sps.norm.rvs(0, 1.0, nt)).T
        + sp.matrix(sps.norm.rvs(0, sp.sqrt(s), nt)).T
    )
    S = sp.matrix([s] * nt).T
    return [X, Y, S, D]
# To change this template file, choose Tools | Templates
# and open the template in the editor.

from scipy import stats as sps
from scipy import linalg as spl
import scipy as sp
from matplotlib import pyplot as plt

import GPdc

hyp = sp.array([1.5,0.25])
kf = GPdc.gen_sqexp_k_d(hyp)
nt=18
x = sp.linspace(-1,1,nt)
Dtmp = [[sp.NaN]]*nt
Kxx = GPdc.buildKsym_d(kf,sp.matrix(x).T,Dtmp)

Z = spl.cholesky(Kxx,lower=True)*sp.matrix(sps.norm.rvs(0,1.,nt)).T
Z = sp.vstack([Z,spl.cholesky(Kxx,lower=True)*sp.matrix(sps.norm.rvs(0,1.,nt)).T])
Z = sp.vstack([Z,spl.cholesky(Kxx,lower=True)*sp.matrix(sps.norm.rvs(0,1.,nt)).T])


y = [-0.4*(i-0.2)+sps.norm.rvs(scale=0.005) for i in x]
y+=[-0.6*(i+0.2)+sps.norm.rvs(scale=0.005) for i in x]
y+=[0.1*(i+0.8)+sps.norm.rvs(scale=0.005) for i in x]
X = sp.vstack([sp.array([i,0.]) for i in x])
X = sp.vstack([X,[sp.array([i,0.4]) for i in x]])
X = sp.vstack([X,[sp.array([i,-0.3]) for i in x]])

Y = sp.matrix(y).T+Z
#X = sp.matrix([[0.,-9.],[0.2,5.],[0.4,12.],[0.6,3.],[0.8,9.]])
Example #4
0
from scipy import linalg as spl
from matplotlib import pyplot as plt
import os
libGP = ct.cdll.LoadLibrary(
    os.path.join(os.path.dirname(os.path.realpath(__file__)),
                 '../../../dist/Release/GNU-Linux/libGPshared.so'))

ctpd = ct.POINTER(ct.c_double)

import GPdc

ni = 50
kf = GPdc.kernel(GPdc.SQUEXP, 1, sp.array([1.3, 0.3]))
X = sp.matrix(sp.linspace(-1, 1, ni)).T
D = [[sp.NaN]] * ni
Kxx = GPdc.buildKsym_d(kf, X, D)

tmp = spl.cholesky(Kxx, lower=True)
Ch = sp.vstack([tmp[i, :] for i in xrange(ni)])  #hack/force row major storage

z = 5

b = sp.empty([ni, z])

libGP.drawcov(Ch.ctypes.data_as(ctpd), ct.c_int(ni), b.ctypes.data_as(ctpd),
              ct.c_int(z))

#print b
for i in xrange(z):
    plt.plot(X[:, 0], b[:, i])
Example #5
0
X = ESutils.draw_support(2, sp.array([-2,-1]),sp.array([0,3]),500,ESutils.SUPPORT_UNIFORM)
for i in xrange(X.shape[0]):
    plt.plot(X[i,0],X[i,1],'r.')
plt.axis([-5,5,-5,5])


#2d gp test



nt=34
X = ESutils.draw_support(2, sp.array([-1.,-1.]),sp.array([1.,1.]),nt,ESutils.SUPPORT_UNIFORM)
D = [[sp.NaN]]*(nt)
hyp = sp.array([1.5,0.25,0.25])
kf = GPdc.gen_sqexp_k_d(hyp)
Kxx = GPdc.buildKsym_d(kf,X,D)
Y = spl.cholesky(Kxx,lower=True)*sp.matrix(sps.norm.rvs(0,1.,nt)).T+sp.matrix(sps.norm.rvs(0,1e-3,nt)).T
S = sp.matrix([1e-6]*nt).T

lb = sp.array([-2.,-2.,-2.])
ub = sp.array([2.,2.,2.])
#MLEH =  GPdc.searchMLEhyp(X,Y,S,D,lb,ub,GPdc.SQUEXP,mx=10000)
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,2,sp.array([1.5,0.15,0.15])))
#np=180
#sup = sp.linspace(-1,1,np)
#Dp = [[sp.NaN]]*np
#Xp = sp.vstack([sp.array([i]) for i in sup])
#[m,v] = G.infer_diag(Xp,Dp)
#a0.plot(sup,m)
#sq = sp.sqrt(v)
#a0.fill_between(sup, sp.array(m-2.*sq).flatten(), sp.array(m+2.*sq).flatten(), facecolor='lightblue',edgecolor='lightblue')