コード例 #1
0
def gensquexpdraw(d, lb, ub, ignores=-1):
    nt = 14
    [X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP,
                                       sp.array([1.5] + [0.30] * d))
    G = GPdc.GPcore(X, Y, S, D,
                    GPdc.kernel(GPdc.SQUEXP, d, sp.array([1.5] + [0.30] * d)))

    def obj(x, s, d, override=False):
        #print [x,s,d]
        if ignores > 0:
            s = ignores
        if s == 0. or override:
            noise = 0.
        else:
            noise = sp.random.normal(scale=sp.sqrt(s))
        print "EVAL WITH NOISE: " + str(noise) + "FROM S= " + str(s)
        return [G.infer_m(x, [d])[0, 0] + noise, 1.]

    def dirwrap(x, y):
        z = G.infer_m(x, [[sp.NaN]])[0, 0]
        #z = obj(x,0.,[sp.NaN])
        return (z, 0)

    [xmin, ymin, ierror] = DIRECT.solve(dirwrap,
                                        lb,
                                        ub,
                                        user_data=[],
                                        algmethod=1,
                                        maxf=89000,
                                        logfilename='/dev/null')

    return [obj, xmin, ymin]
コード例 #2
0
ファイル: OPTutils.py プロジェクト: markm541374/GPc
def gensquexpIPdraw(d,lb,ub,sl,su,sfn,sls,cfn):
    #axis = 0 value = sl
    #d dimensional objective +1 for s
    nt=25
    #print sp.hstack([sp.array([[sl]]),lb])
    #print sp.hstack([sp.array([[su]]),ub])
    [X,Y,S,D] = ESutils.gen_dataset(nt,d+1,sp.hstack([sp.array([[sl]]),lb]).flatten(),sp.hstack([sp.array([[su]]),ub]).flatten(),GPdc.SQUEXP,sp.array([1.5]+[sls]+[0.30]*d))
    G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,d+1,sp.array([1.5]+[sls]+[0.30]*d)))
    def obj(x,s,d,override=False):
        x = x.flatten()
        if sfn(x)==0. or override:
            noise = 0.
        else:
            noise = sp.random.normal(scale=sp.sqrt(sfn(x)))
        
        return [G.infer_m(x,[d])[0,0]+noise,cfn(x)]
    def dirwrap(x,y):
        z = obj(sp.array([[sl]+[i for i in x]]),sl,[sp.NaN],override=True)
        return (z,0)
    [xmin0,ymin0,ierror] = DIRECT.solve(dirwrap,lb,ub,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null')
    lb2 = xmin0-sp.ones(d)*1e-4
    ub2 = xmin0+sp.ones(d)*1e-4
    [xmin,ymin,ierror] = DIRECT.solve(dirwrap,lb2,ub2,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null')
    #print "RRRRR"+str([xmin0,xmin,ymin0,ymin,xmin0-xmin,ymin0-ymin])
    return [obj,xmin,ymin]
コード例 #3
0
def makeG(X,Y,S,D,kindex,mprior,sprior,nh):
    #draw hyps based on plk
    #print "RRRRRRRRRRRRRR"+str([X,Y,S,D,kindex,mprior,sprior,nh])
    H = ESutils.drawhyp_plk(X,Y,S,D,kindex,mprior,sprior,nh)
    
    G = GPdc.GPcore(X,Y,S,D,[GPdc.kernel(kindex,X.shape[1],i) for i in H])
    
    return G
コード例 #4
0
def drawmins(G,n,lb,ub,SUPPORT=300,mode = [ESutils.SUPPORT_SLICELCB],SLICELCB_PARA=1.):
    #draw support points
    
    W = sp.vstack([ESutils.draw_support(G, lb,ub,SUPPORT/len(mode),m, para = SLICELCB_PARA) for m in mode])
    if False:
        print 'how did I get here'
        plt.figure()
        plt.plot(W[:,0],W[:,1],'g.')
        plt.show()
    #draw in samples on the support
    print "drawing mins from support"
    R = ESutils.draw_min(G,W,n)
    if False:
        
        plt.figure()
        plt.plot(R[:,0],R[:,1],'r.')
        plt.show()
    #plt.show()
    return R
コード例 #5
0
def gensquexpIPdraw(d, lb, ub, sl, su, sfn, sls, cfn):
    #axis = 0 value = sl
    #d dimensional objective +1 for s
    nt = 25
    #print sp.hstack([sp.array([[sl]]),lb])
    #print sp.hstack([sp.array([[su]]),ub])
    [X, Y,
     S, D] = ESutils.gen_dataset(nt, d + 1,
                                 sp.hstack([sp.array([[sl]]), lb]).flatten(),
                                 sp.hstack([sp.array([[su]]), ub]).flatten(),
                                 GPdc.SQUEXP,
                                 sp.array([1.5] + [sls] + [0.30] * d))
    G = GPdc.GPcore(
        X, Y, S, D,
        GPdc.kernel(GPdc.SQUEXP, d + 1, sp.array([1.5] + [sls] + [0.30] * d)))

    def obj(x, s, d, override=False):
        x = x.flatten()
        if sfn(x) == 0. or override:
            noise = 0.
        else:
            noise = sp.random.normal(scale=sp.sqrt(sfn(x)))

        return [G.infer_m(x, [d])[0, 0] + noise, cfn(x)]

    def dirwrap(x, y):
        z = obj(sp.array([[sl] + [i for i in x]]), sl, [sp.NaN], override=True)
        return (z, 0)

    [xmin0, ymin0, ierror] = DIRECT.solve(dirwrap,
                                          lb,
                                          ub,
                                          user_data=[],
                                          algmethod=1,
                                          maxf=89000,
                                          logfilename='/dev/null')
    lb2 = xmin0 - sp.ones(d) * 1e-4
    ub2 = xmin0 + sp.ones(d) * 1e-4
    [xmin, ymin, ierror] = DIRECT.solve(dirwrap,
                                        lb2,
                                        ub2,
                                        user_data=[],
                                        algmethod=1,
                                        maxf=89000,
                                        logfilename='/dev/null')
    #print "RRRRR"+str([xmin0,xmin,ymin0,ymin,xmin0-xmin,ymin0-ymin])
    return [obj, xmin, ymin]
コード例 #6
0
ファイル: lkojf.py プロジェクト: markm541374/GPc
 def makedata(self,n,d,ki,hy,lb,ub):
     self.n=n
     self.d=d
     self.ki=ki
     self.hy=hy
     self.nhy = hy.size
     self.lb=lb
     self.ub=ub
     t0 = time.time()
     [X,Y,S,D] = ESutils.gen_dataset(n,d,lb,ub,ki,hy,s=hy[-1])
     t1 = time.time()
     print "Setuptime: "+str(t1-t0)
     S = sp.zeros(S.shape)
     self.X=X
     self.Y=Y
     self.S=S
     self.D=D
     return
コード例 #7
0
ファイル: lkojf.py プロジェクト: markm541374/GPc
 def makedata(self, n, d, ki, hy, lb, ub):
     self.n = n
     self.d = d
     self.ki = ki
     self.hy = hy
     self.nhy = hy.size
     self.lb = lb
     self.ub = ub
     t0 = time.time()
     [X, Y, S, D] = ESutils.gen_dataset(n, d, lb, ub, ki, hy, s=hy[-1])
     t1 = time.time()
     print "Setuptime: " + str(t1 - t0)
     S = sp.zeros(S.shape)
     self.X = X
     self.Y = Y
     self.S = S
     self.D = D
     return
コード例 #8
0
ファイル: OPTutils.py プロジェクト: markm541374/GPc
def gensquexpdraw(d,lb,ub,ignores=-1):
    nt=14
    [X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5]+[0.30]*d))
    G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,d,sp.array([1.5]+[0.30]*d)))
    def obj(x,s,d,override=False):
        #print [x,s,d]
        if ignores>0:
            s=ignores
        if s==0. or override:
            noise = 0.
        else:
            noise = sp.random.normal(scale=sp.sqrt(s))
        print "EVAL WITH NOISE: "+str(noise) + "FROM S= "+str(s)
        return [G.infer_m(x,[d])[0,0]+noise,1.]
    def dirwrap(x,y):
        z = G.infer_m(x,[[sp.NaN]])[0,0]
        #z = obj(x,0.,[sp.NaN])
        return (z,0)
    [xmin,ymin,ierror] = DIRECT.solve(dirwrap,lb,ub,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null')
    
    return [obj,xmin,ymin]
コード例 #9
0
ファイル: expPESojfs.py プロジェクト: markm541374/GPc
import scipy as sp
from scipy import linalg as spl
from matplotlib import pyplot as plt
import GPdc
import OPTutils
import ESutils
import DIRECT

#base dimension
d = 2
kindex = GPdc.MAT52
nt = 34
lb = sp.array([0.] + [-1.] * d)
ub = sp.array([5.] + [1.] * d)
Htrue = sp.array([1.4, 4.] + [0.25] * d)
[X, Y, S, D] = ESutils.gen_dataset(nt, d + 1, lb, ub, kindex, Htrue, s=1e-8)
G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(kindex, d + 1, Htrue))


def ojfaugnn(x):
    return G.infer_m(x, [[sp.NaN]])[0, 0]


def opt_ip(s):
    def dwrap(x, y):
        X = sp.hstack([[s], x])
        return (ojfaugnn(X), 0)

    [xm, ym, ierror] = DIRECT.solve(dwrap,
                                    lb[1:],
                                    ub[1:],
コード例 #10
0
ファイル: testPES4.py プロジェクト: markm541374/GPc
import ESutils
import scipy as sp
from scipy import linalg as spl
from scipy import stats as sps
from matplotlib import pyplot as plt
import GPdc
import PES

#-------------------------------------------------------------------------
#2d
nt=30
d=2
lb = sp.array([0.]+[-1.]*(d-1))
ub = sp.array([1.]*d)
[X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5,0.55,0.25]))

kindex = GPdc.SQUEXP
mprior = sp.array([0.]+[-1.]*d)
sprior = sp.array([1.]*(d+1))
axis=0
value=0.
pesobj = PES.PES_inplane(X,Y,S,D,lb,ub,kindex,mprior,sprior,axis,value,DH_SAMPLES=8,DM_SAMPLES=8, DM_SUPPORT=400,DM_SLICELCBPARA=1.,AM_POLICY=PES.NOMIN,mode=ESutils.SUPPORT_SLICEEI)


def cfn(x):
    return 1.-(0.6*x[0])**0.1
def sfn(x):
    return 1e-4

[xmin,ymin,ierror] = pesobj.search_acq(cfn,sfn)
コード例 #11
0
ファイル: testsquexpps.py プロジェクト: markm541374/GPc
# To change this license header, choose License Headers in Project Properties.
# 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 ESutils

import GPdc

nt=80
d=1
lb = sp.array([-1.]*d)
ub = sp.array([1.]*d)
[X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([0.9,0.25]),s=0.)
S*=0.
for i in xrange(nt):
    x = X[i,0]
    s = -(1e-2)*(x-1.)*(x+1.1)
    Y[i,0]+= sps.norm.rvs(0,sp.sqrt(s))

f0 = plt.figure()
a0 = plt.subplot(111)
a0.plot(sp.array(X[:,0]).flatten(),Y,'g.')

lb = sp.array([-2.,-2.,-9,-2.,-2.])
ub = sp.array([2.,2.,-1,2.,2.])
MLEH =  GPdc.searchMLEhyp(X,Y,S,D,lb,ub,GPdc.SQUEXPPS,mx=20000)

mprior = sp.array([0.,-1.,-5.,-0.5,0.5])
コード例 #12
0
ファイル: testeprop.py プロジェクト: markm541374/GPc
import ESutils
import GPdc

nt = 5
X = sp.matrix(sp.linspace(-1, 1, nt)).T
D = [[sp.NaN]] * (nt)
hyp = sp.array([1.5, 0.15])
kf = GPdc.kernel(GPdc.SQUEXP, 1, 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, 1e-3, nt)).T
S = sp.matrix([1e-2] * nt).T
g = GPdc.GPcore(X, Y, S, D, kf)
f, a = plt.subplots(2)

Xe = sp.array([-0.25, 0.25])
De = [[sp.NaN]] * 2
[m0, V0] = g.infer_full(Xe, De)
Ye = sp.array([2.0, -2.0])
Ze = sp.array([1.0, -1.0])
Fe = sp.array([(1e-6) ** 2, (1e-6) ** 2])

mt, vt = eprop.expectation_prop(m0, V0, Ye, Ze, Fe, 20)
print D + De
g2 = GPdc.GPcore(
    sp.vstack([X, sp.array([Xe]).T]), sp.vstack([Y, sp.array([Ye]).T]), sp.vstack([S, sp.array([Fe]).T]), D + De, kf
)

ESutils.plot_gp(g, a[0], sp.linspace(-1, 1, 100), [[sp.NaN]] * 100)
ESutils.plot_gp(g2, a[1], sp.linspace(-1, 1, 100), [[sp.NaN]] * 100)
plt.show()
コード例 #13
0
# and open the template in the editor.

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

#uniform test
class bob:
    def __init__(self,D):
        self.D=D
        return


X = ESutils.draw_support_inplane(bob(2), sp.array([-2,-1]),sp.array([0,3]),500,ESutils.SUPPORT_UNIFORM,1,0.5)
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

import GPdc

nt=34
X = ESutils.draw_support(bob(2), sp.array([-1.,-1.]),sp.array([1.,1.]),nt,ESutils.SUPPORT_UNIFORM)
D = [[sp.NaN]]*(nt)
hyp = sp.array([1.5,0.15,0.15])
kf = GPdc.gen_sqexp_k_d(hyp)
Kxx = GPdc.buildKsym_d(kf,X,D)
コード例 #14
0
import scipy as sp
from scipy import linalg as spl
from scipy import stats as sps
from matplotlib import pyplot as plt
import GPdc
import ESutils

nt = 2
d = 1
lb = sp.array([-1.])
ub = sp.array([1.])
[X, Y, S, D] = ESutils.gen_dataset(nt,
                                   d,
                                   lb,
                                   ub,
                                   GPdc.SQUEXP,
                                   sp.array([1.5, 0.35]),
                                   s=1e-3)

g = GPdc.GPcore(X, Y, S, D, GPdc.kernel(GPdc.SQUEXP, 1, sp.array([1.5, 0.35])))

np = 100
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_post(Xp, Dp)

f, a = plt.subplots(3)
s = sp.sqrt(V[0, :])
a[0].fill_between(sup,
コード例 #15
0
ファイル: testsquexpcs.py プロジェクト: markm541374/GPc
from scipy import stats as sps
from scipy import linalg as spl
import scipy as sp
from matplotlib import pyplot as plt
import ESutils

import GPdc

nt = 22
d = 1
lb = sp.array([-1.] * d)
ub = sp.array([1.] * d)
[X, Y, S, D] = ESutils.gen_dataset(nt,
                                   d,
                                   lb,
                                   ub,
                                   GPdc.SQUEXP,
                                   sp.array([0.9, 0.25]),
                                   s=1e-8)
S *= 0.
f0 = plt.figure()
a0 = plt.subplot(111)
a0.plot(sp.array(X[:, 0]).flatten(), Y, 'g.')

lb = sp.array([-2., -2., -9])
ub = sp.array([2., 2., -1])
MLEH = GPdc.searchMLEhyp(X, Y, S, D, lb, ub, GPdc.SQUEXPCS, mx=10000)

mprior = sp.array([0., -1., -5.])
sprior = sp.array([1., 1., 3.])
コード例 #16
0
ファイル: testdrawhyp.py プロジェクト: markm541374/GPc
#!/usr/bin/env python2
#encoding: UTF-8

#Draw 200 hyperparameters from the posterior, plot the draws on a countour plot, first for very few points, then a large number

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

import GPdc
#test on a single point
nt = 3
X = ESutils.draw_support(1, sp.array([-1.]), sp.array([1.]), nt,
                         ESutils.SUPPORT_UNIFORM)
D = [[sp.NaN]] * (nt)
hyp = sp.array([1.5, 0.15])
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

G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(GPdc.SQUEXP, 2, hyp))

ng = 40
A = sp.empty([ng, ng])
print 'startimage1'
sup = sp.logspace(-3, 2, ng)
for i, hi in enumerate(sup):
コード例 #17
0
import ESutils
import scipy as sp
from scipy import linalg as spl
from scipy import stats as sps
from matplotlib import pyplot as plt


#uniform test
class bob:
    def __init__(self, D):
        self.D = D
        return


X = ESutils.draw_support_inplane(bob(2), sp.array([-2, -1]), sp.array([0, 3]),
                                 500, ESutils.SUPPORT_UNIFORM, 1, 0.5)
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

import GPdc

nt = 34
X = ESutils.draw_support(bob(2), sp.array([-1., -1.]), sp.array([1., 1.]), nt,
                         ESutils.SUPPORT_UNIFORM)
D = [[sp.NaN]] * (nt)
hyp = sp.array([1.5, 0.15, 0.15])
kf = GPdc.gen_sqexp_k_d(hyp)
Kxx = GPdc.buildKsym_d(kf, X, D)
コード例 #18
0
ファイル: expPESojfs.py プロジェクト: markm541374/GPc
import scipy as sp
from scipy import linalg as spl
from matplotlib import pyplot as plt
import GPdc
import OPTutils
import ESutils
import DIRECT

#base dimension
d = 2
kindex = GPdc.MAT52
nt = 34
lb = sp.array([0.]+[-1.]*d)
ub = sp.array([5.]+[1.]*d)
Htrue = sp.array([1.4,4.]+[0.25]*d)
[X,Y,S,D] = ESutils.gen_dataset(nt,d+1,lb,ub,kindex,Htrue, s=1e-8)
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(kindex,d+1,Htrue))

def ojfaugnn(x):
    return G.infer_m(x,[[sp.NaN]])[0,0]

def opt_ip(s):
    def dwrap(x,y):
        X = sp.hstack([[s],x])
        return (ojfaugnn(X),0)
    [xm,ym,ierror] = DIRECT.solve(dwrap,lb[1:],ub[1:], user_data=[], algmethod=1, maxf=12000, logfilename='/dev/null')
    print "DIRECT found: " +str([xm,ym,ierror])
    return xm

mintrue = opt_ip(0.)
minaug = sp.hstack([[0.],mintrue])
コード例 #19
0
ファイル: testdrawsupport.py プロジェクト: markm541374/GPc
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.

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

#uniform test
import GPdc

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
コード例 #20
0
def drawmins_inplane(G,n,lb,ub,axis,value, SUPPORT=300, mode=ESutils.SUPPORT_SLICELCB, SLICELCB_PARA=1.):
    W = sp.vstack([ESutils.draw_support_inplane(G, lb,ub,SUPPORT/len(mode),m, axis,value,para = SLICELCB_PARA) for m in mode])
    #draw in samples on the support
    R = ESutils.draw_min(G,W,n)
    return R
コード例 #21
0
    ax[i].plot(sup,sps.norm.pdf(sup,loc=mu[i],scale=sp.sqrt(vu[i,i])),'r')
    ax[i].twinx().plot(sup,sps.norm.cdf(Z[i]*(sup-Y[i])/max(F[i],1e-20))*sps.norm.pdf(sup,loc=m[i],scale=sp.sqrt(v[i,i])),'g')
#est on a gp

import ESutils
import GPdc
nt=5
X = sp.matrix(sp.linspace(-1,1,nt)).T
D = [[sp.NaN]]*(nt)
hyp = sp.array([1.5,0.15])
kf = GPdc.kernel(GPdc.SQUEXP,1,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-2]*nt).T
g = GPdc.GPcore(X,Y,S,D,kf)
f,a = plt.subplots(2)

Xe = sp.array([-0.25,0.25])
De = [[sp.NaN]]*2
[m0,V0] = g.infer_full(Xe,De)
Ye = sp.array([2.,-2.])
Ze = sp.array([1.,-1.])
Fe = sp.array([(1e-6)**2,(1e-6)**2])

mt,vt = eprop.expectation_prop(m0,V0,Ye,Ze,Fe,20)
print D+De
g2 = GPdc.GPcore(sp.vstack([X,sp.array([Xe]).T]),sp.vstack([Y,sp.array([Ye]).T]),sp.vstack([S,sp.array([Fe]).T]),D+De,kf)

ESutils.plot_gp(g,a[0],sp.linspace(-1,1,100),[[sp.NaN]]*100)
ESutils.plot_gp(g2,a[1],sp.linspace(-1,1,100),[[sp.NaN]]*100)
plt.show()
コード例 #22
0
ファイル: testdrawhyp.py プロジェクト: markm541374/GPc
#!/usr/bin/env python2
#encoding: UTF-8

#Draw 200 hyperparameters from the posterior, plot the draws on a countour plot, first for very few points, then a large number

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

import GPdc
#test on a single point
nt=3
X = ESutils.draw_support(1, sp.array([-1.]),sp.array([1.]),nt,ESutils.SUPPORT_UNIFORM)
D = [[sp.NaN]]*(nt)
hyp = sp.array([1.5,0.15])
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


G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,2,hyp))

ng = 40
A = sp.empty([ng,ng])
print 'startimage1'
sup = sp.logspace(-3,2,ng)
for i,hi in enumerate(sup):
    for j,hj in enumerate(sup):
コード例 #23
0
import ESutils
import scipy as sp
from scipy import linalg as spl
from scipy import stats as sps
from matplotlib import pyplot as plt
import GPdc
import PES

#-------------------------------------------------------------------------
#2d
nt = 30
d = 2
lb = sp.array([-1.] * d)
ub = sp.array([1.] * d)
[X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP,
                                   sp.array([1.5, 0.35, 0.30]))

kindex = GPdc.SQUEXP
mprior = sp.array([0.] + [-1.] * d)
sprior = sp.array([1.] * (d + 1))

pesobj = PES.PES(X,
                 Y,
                 S,
                 D,
                 lb,
                 ub,
                 kindex,
                 mprior,
                 sprior,
                 DH_SAMPLES=8,
コード例 #24
0
ファイル: testES.py プロジェクト: markm541374/GPc
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.

import scipy as sp
from scipy import linalg as spl
from scipy import stats as sps
from matplotlib import pyplot as plt
import GPdc
import ESutils
nt=2
d=1
lb = sp.array([-1.])
ub = sp.array([1.])
[X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5,0.35]),s=1e-3)

g = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,1,sp.array([1.5,0.35])))

np=100
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_post(Xp,Dp)

f,a = plt.subplots(3)
s = sp.sqrt(V[0,:])
a[0].fill_between(sup,sp.array(m[0,:]-2.*s).flatten(),sp.array(m[0,:]+2.*s).flatten(),facecolor='lightblue',edgecolor='lightblue')
a[0].plot(sup,m[0,:].flatten())
a[0].plot(sp.array(X[:,0]).flatten(),Y,'g.')