Exemple #1
0
 def train_costest(self):
     print self.X[:,0]
     X = self.X[:,0].copy().reshape([len(self.C),1])
     C = sp.array(self.C)
     D = [[sp.NaN]]*len(self.C)
     S = sp.zeros([len(self.C),1])
     lbc = sp.array([-3.,-2.,-6.])
     ubc = sp.array([3.,2.,1.])
     MLEC =  GPdc.searchMLEhyp(X,sp.log(C),S,D,lbc,ubc,GPdc.SQUEXPCS,mx=10000)
     print "MLEC "+str(MLEC)
     self.ce = GPdc.GPcore(X.copy(),sp.log(C),S,D,GPdc.kernel(GPdc.SQUEXPCS,1,sp.array(MLEC)))
     #self.ce = GPdc.GPcore(X,C,S,D,GPdc.kernel(GPdc.SQUEXPCS,1,sp.array([1.,0.3,1e-3])))
     #self.ce.printc()
     return
Exemple #2
0
 def train_costest(self):
     print self.X[:, 0]
     X = self.X[:, 0].copy().reshape([len(self.C), 1])
     C = sp.array(self.C)
     D = [[sp.NaN]] * len(self.C)
     S = sp.zeros([len(self.C), 1])
     lbc = sp.array([-3., -2., -6.])
     ubc = sp.array([3., 2., 1.])
     MLEC = GPdc.searchMLEhyp(X,
                              sp.log(C),
                              S,
                              D,
                              lbc,
                              ubc,
                              GPdc.SQUEXPCS,
                              mx=10000)
     print "MLEC " + str(MLEC)
     self.ce = GPdc.GPcore(X.copy(), sp.log(C), S, D,
                           GPdc.kernel(GPdc.SQUEXPCS, 1, sp.array(MLEC)))
     #self.ce = GPdc.GPcore(X,C,S,D,GPdc.kernel(GPdc.SQUEXPCS,1,sp.array([1.,0.3,1e-3])))
     #self.ce.printc()
     return
Y = sp.matrix(y).T+Z
#X = sp.matrix([[0.,-9.],[0.2,5.],[0.4,12.],[0.6,3.],[0.8,9.]])

#Y = sp.matrix([0.2,0.1,0.,-0.15,-0.3]).T

D = [[sp.NaN]]*X.shape[0]
S = sp.matrix([0.005**2]*X.shape[0]).T
f0 = plt.figure()
a0 = plt.subplot(111)
a0.plot(sp.array(X[:,0]).flatten(),Y,'g.')


lb = sp.array([-2.,-1.,-2.,-2.,-2.,-2.,-2.])
ub = sp.array([2.,1.,2.,2.,2.,2.,2.])
MLEH =  GPdc.searchMLEhyp(X,Y,S,D,lb,ub,GPdc.LINSQUEXPXSQUEXP,mx=10000)
print "xxx"
GPdc.kernel(GPdc.LINSQUEXPXSQUEXP,2,MLEH)
print "yyyy"
print MLEH
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.LINSQUEXPXSQUEXP,2,MLEH))
print G.llk()

print "zzz"
np=180
sup = sp.linspace(-1,1,np)
Dp = [[sp.NaN]]*np
Xp = sp.vstack([sp.array([i,0.2]) for i in sup])

[m,v] = G.infer_diag(Xp,Dp)
print "wwww"
Exemple #4
0
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.])

MAPH = GPdc.searchMAPhyp(X, Y, S, D, mprior, sprior, GPdc.SQUEXPCS, mx=10000)
print "MLEH: " + str(MLEH)
print "MAPH: " + str(MAPH)
G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(GPdc.SQUEXPCS, 1, sp.array(MLEH)))

print G.llk()

np = 180
sup = sp.linspace(-1, 1, np)
Dp = [[sp.NaN]] * np
Xp = sp.vstack([sp.array([i]) for i in sup])
Exemple #5
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 GPdc

ni = 100
kf = GPdc.kernel(GPdc.SQUEXP,2,sp.array([1.3,0.3,0.2]))
X = sp.random.uniform(-1,1,size=[ni,2])
D = [[sp.NaN]]*ni
Kxx = GPdc.buildKsym_d(kf,X,D)
s = 1e-2
Y = spl.cholesky(Kxx,lower=True)*sp.matrix(sps.norm.rvs(0,1.,ni)).T+sp.matrix(sps.norm.rvs(0,s,ni)).T
S = sp.ones(ni)*s
print Y
MLEHYP = GPdc.searchMLEhyp(X,Y,S,D,sp.array([2.,2.,2.]),sp.array([-2.,-2.,-2.]), GPdc.SQUEXP)
print MLEHYP

MAPHYP = GPdc.searchMAPhyp(X,Y,S,D,sp.array([0.,0.,0.]),sp.array([1.,1.,1.]), GPdc.SQUEXP)
print MAPHYP
Exemple #6
0
X = sp.vstack([sp.array([i,0.]) for i in x])
Y = sp.matrix(y).T
#X = sp.matrix([[0.,-9.],[0.2,5.],[0.4,12.],[0.6,3.],[0.8,9.]])

#Y = sp.matrix([0.2,0.1,0.,-0.15,-0.3]).T

D = [[sp.NaN]]*(X.shape[0])
S = sp.matrix([0.005**2]*X.shape[0]).T
f0 = plt.figure()
a0 = plt.subplot(111)
a0.plot(sp.array(X[:,0]).flatten(),Y,'g.')


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

print MLEH
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.LIN1,2,MLEH))
print G.llk()


np=180
sup = sp.linspace(-1,1,np)
Dp = [[sp.NaN]]*np
Xp = sp.vstack([sp.array([i,1.]) for i in sup])

[m,v] = G.infer_diag(Xp,Dp)
a0.plot(sup,m.flatten())
sq = sp.sqrt(v)
Exemple #7
0
H = sp.empty([np, 1])
T = sp.empty([np, 1])
for i in xrange(np):
    [H[i, 0], T[i, 0]] = L.llks(sp.array([1.3, 0.13, 0.2, 1e-2]), int(X[i, 0]))

#lb = sp.array([0.,0.,-4.,-0.5*float(nf),float(nf)])
#ub = sp.array([4.,3.,3.,0.,1.5*float(nf)])
#MLEH =  GPdc.searchMLEhyp(X,H,sp.zeros([np,1]),[[sp.NaN]]*(np),lb,ub,GPdc.SQUEXPPS,mx=10000)
#G = GPdc.GPcore(X.copy(),H,sp.zeros([np,1]),[[sp.NaN]]*(np),GPdc.kernel(GPdc.SQUEXPPS,1,sp.array(MLEH)))
lb = sp.array([0., 0., -4., -1., -3.])
ub = sp.array([4., 3., 3., 0.5, 3.])
MLEH = GPdc.searchMLEhyp(1. / float(nf) * X,
                         H,
                         sp.zeros([np, 1]), [[sp.NaN]] * (np),
                         lb,
                         ub,
                         GPdc.SQUEXPBS,
                         mx=10000)
G = GPdc.GPcore(1. / float(nf) * X.copy(), H, sp.zeros([np,
                                                        1]), [[sp.NaN]] * (np),
                GPdc.kernel(GPdc.SQUEXPBS, 1, sp.array(MLEH)))

[m, v] = G.infer_diag(1. / float(nf) * X, [[sp.NaN]] * (np))

S = sp.empty([np, 1])
for i in xrange(np):
    S[i, 0] = MLEH[2] * ((1. / float(nf) * X[i, 0])**(MLEH[3] * MLEH[4])) * (
        (1. - 1. / float(nf) * X[i, 0])**(MLEH[3] * (1. - MLEH[4])))

lbc = sp.array([-4., 0., -6.])
Exemple #8
0
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])
sprior = sp.array([1.,1.,3.,1.,1.])

MAPH = GPdc.searchMAPhyp(X,Y,S,D,mprior,sprior,GPdc.SQUEXPPS,mx=20000)
print "MLEH: "+str(MLEH)
print "MAPH: "+str(MAPH)
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXPPS,1,sp.array(MAPH)))



print G.llk()

np=180
sup = sp.linspace(-1,1,np)
Exemple #9
0
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.])

MAPH = GPdc.searchMAPhyp(X,Y,S,D,mprior,sprior,GPdc.SQUEXPCS,mx=10000)
print "MLEH: "+str(MLEH)
print "MAPH: "+str(MAPH)
G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXPCS,1,sp.array(MLEH)))


print G.llk()

np=180
sup = sp.linspace(-1,1,np)
Dp = [[sp.NaN]]*np
Exemple #10
0
X = sp.vstack([sp.array([i, 0.]) for i in x])
Y = sp.matrix(y).T
#X = sp.matrix([[0.,-9.],[0.2,5.],[0.4,12.],[0.6,3.],[0.8,9.]])

#Y = sp.matrix([0.2,0.1,0.,-0.15,-0.3]).T

D = [[sp.NaN]] * (X.shape[0])
S = sp.matrix([0.005**2] * X.shape[0]).T
f0 = plt.figure()
a0 = plt.subplot(111)
a0.plot(sp.array(X[:, 0]).flatten(), Y, 'g.')

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

print MLEH
G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(GPdc.LIN1, 2, MLEH))
print G.llk()

np = 180
sup = sp.linspace(-1, 1, np)
Dp = [[sp.NaN]] * np
Xp = sp.vstack([sp.array([i, 1.]) for i in sup])

[m, v] = G.infer_diag(Xp, Dp)
a0.plot(sup, m.flatten())
sq = sp.sqrt(v)

a0.fill_between(sup,
Exemple #11
0
np = 200
X = sp.array([sp.linspace(0,nf,np)]).T

H = sp.empty([np,1])
T = sp.empty([np,1])
for i in xrange(np):
    [H[i,0],T[i,0]] = L.llks(sp.array([1.3,0.13,0.2,1e-2]),int(X[i,0]))


#lb = sp.array([0.,0.,-4.,-0.5*float(nf),float(nf)])
#ub = sp.array([4.,3.,3.,0.,1.5*float(nf)])
#MLEH =  GPdc.searchMLEhyp(X,H,sp.zeros([np,1]),[[sp.NaN]]*(np),lb,ub,GPdc.SQUEXPPS,mx=10000)
#G = GPdc.GPcore(X.copy(),H,sp.zeros([np,1]),[[sp.NaN]]*(np),GPdc.kernel(GPdc.SQUEXPPS,1,sp.array(MLEH)))
lb = sp.array([0.,0.,-4.,-1.,-3.])
ub = sp.array([4.,3.,3.,0.5,3.])
MLEH =  GPdc.searchMLEhyp(1./float(nf)*X,H,sp.zeros([np,1]),[[sp.NaN]]*(np),lb,ub,GPdc.SQUEXPBS,mx=10000)
G = GPdc.GPcore(1./float(nf)*X.copy(),H,sp.zeros([np,1]),[[sp.NaN]]*(np),GPdc.kernel(GPdc.SQUEXPBS,1,sp.array(MLEH)))

[m,v] = G.infer_diag(1./float(nf)*X,[[sp.NaN]]*(np))

S = sp.empty([np,1])
for i in xrange(np):
    S[i,0] = MLEH[2]*((1./float(nf)*X[i,0])**(MLEH[3]*MLEH[4]))* ((1.-1./float(nf)*X[i,0])**(MLEH[3]*(1.-MLEH[4])))

lbc = sp.array([-4.,0.,-6.])
ubc = sp.array([2.,3.,0.])
MLEC =  GPdc.searchMLEhyp(X,sp.log(T),sp.zeros([np,1]),[[sp.NaN]]*(np),lbc,ubc,GPdc.SQUEXPCS,mx=10000)
C = GPdc.GPcore(X.copy(),sp.log(T),sp.zeros([np,1]),[[sp.NaN]]*(np),GPdc.kernel(GPdc.SQUEXPCS,1,sp.array(MLEC)))

f,a = plt.subplots(2)
a[0].plot(X.flatten(),H.flatten(),'g.')
Exemple #12
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 GPdc

ni = 100
kf = GPdc.kernel(GPdc.SQUEXP, 2, sp.array([1.3, 0.3, 0.2]))
X = sp.random.uniform(-1, 1, size=[ni, 2])
D = [[sp.NaN]] * ni
Kxx = GPdc.buildKsym_d(kf, X, D)
s = 1e-2
Y = spl.cholesky(Kxx, lower=True) * sp.matrix(sps.norm.rvs(
    0, 1., ni)).T + sp.matrix(sps.norm.rvs(0, s, ni)).T
S = sp.ones(ni) * s
print Y
MLEHYP = GPdc.searchMLEhyp(X, Y, S, D, sp.array([2., 2., 2.]),
                           sp.array([-2., -2., -2.]), GPdc.SQUEXP)
print MLEHYP

MAPHYP = GPdc.searchMAPhyp(X, Y, S, D, sp.array([0., 0., 0.]),
                           sp.array([1., 1., 1.]), GPdc.SQUEXP)
print MAPHYP