Пример #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
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
 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
 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
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
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
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
# 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
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
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
#!/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
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
# 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
#!/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
# 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.')