actually changing coregionalise to coregionalize

This commit is contained in:
James Hensman 2013-09-16 09:55:32 +01:00
parent 39d2748922
commit 1fea140df8
6 changed files with 16 additions and 21 deletions

View file

@ -22,7 +22,7 @@ def coregionalisation_toy2(max_iters=100):
Y = np.vstack((Y1, Y2)) Y = np.vstack((Y1, Y2))
k1 = GPy.kern.rbf(1) + GPy.kern.bias(1) k1 = GPy.kern.rbf(1) + GPy.kern.bias(1)
k2 = GPy.kern.coregionalise(2,1) k2 = GPy.kern.coregionalize(2,1)
k = k1**k2 #k = k1.prod(k2,tensor=True) k = k1**k2 #k = k1.prod(k2,tensor=True)
m = GPy.models.GPRegression(X, Y, kernel=k) m = GPy.models.GPRegression(X, Y, kernel=k)
m.constrain_fixed('.*rbf_var', 1.) m.constrain_fixed('.*rbf_var', 1.)
@ -82,7 +82,7 @@ def coregionalisation_sparse(max_iters=100):
k1 = GPy.kern.rbf(1) k1 = GPy.kern.rbf(1)
m = GPy.models.SparseGPMultioutputRegression(X_list=[X1,X2],Y_list=[Y1,Y2],kernel_list=[k1],num_inducing=20) m = GPy.models.SparseGPMultioutputRegression(X_list=[X1,X2],Y_list=[Y1,Y2],kernel_list=[k1],num_inducing=20)
#k2 = GPy.kern.coregionalise(2, 2) #k2 = GPy.kern.coregionalize(2, 2)
#k = k1**k2 #.prod(k2, tensor=True) # + GPy.kern.white(2,0.001) #k = k1**k2 #.prod(k2, tensor=True) # + GPy.kern.white(2,0.001)
#m = GPy.models.SparseGPRegression(X, Y, kernel=k, Z=Z) #m = GPy.models.SparseGPRegression(X, Y, kernel=k, Z=Z)
m.constrain_fixed('.*rbf_var', 1.) m.constrain_fixed('.*rbf_var', 1.)
@ -135,7 +135,7 @@ def epomeo_gpx(max_iters=100):
np.random.randint(0, 4, num_inducing)[:, None])) np.random.randint(0, 4, num_inducing)[:, None]))
k1 = GPy.kern.rbf(1) k1 = GPy.kern.rbf(1)
k2 = GPy.kern.coregionalise(output_dim=5, rank=5) k2 = GPy.kern.coregionalize(output_dim=5, rank=5)
k = k1**k2 k = k1**k2
m = GPy.models.SparseGPRegression(t, Y, kernel=k, Z=Z, normalize_Y=True) m = GPy.models.SparseGPRegression(t, Y, kernel=k, Z=Z, normalize_Y=True)

View file

@ -346,7 +346,7 @@ def symmetric(k):
k_.parts = [symmetric.Symmetric(p) for p in k.parts] k_.parts = [symmetric.Symmetric(p) for p in k.parts]
return k_ return k_
def coregionalise(num_outputs,W_columns=1, W=None, kappa=None): def coregionalize(num_outputs,W_columns=1, W=None, kappa=None):
""" """
Coregionlization matrix B, of the form: Coregionlization matrix B, of the form:
.. math:: .. math::
@ -358,7 +358,7 @@ def coregionalise(num_outputs,W_columns=1, W=None, kappa=None):
it is obtainded as the tensor product between a kernel k(x,y) and B. it is obtainded as the tensor product between a kernel k(x,y) and B.
:param num_outputs: the number of outputs to corregionalise :param num_outputs: the number of outputs to corregionalize
:type num_outputs: int :type num_outputs: int
:param W_columns: number of columns of the W matrix (this parameter is ignored if parameter W is not None) :param W_columns: number of columns of the W matrix (this parameter is ignored if parameter W is not None)
:type W_colunns: int :type W_colunns: int
@ -369,7 +369,7 @@ def coregionalise(num_outputs,W_columns=1, W=None, kappa=None):
:rtype: kernel object :rtype: kernel object
""" """
p = parts.coregionalise.Coregionalise(num_outputs,W_columns,W,kappa) p = parts.coregionalize.Coregionalize(num_outputs,W_columns,W,kappa)
return kern(1,[p]) return kern(1,[p])
@ -448,11 +448,11 @@ def build_lcm(input_dim, num_outputs, kernel_list = [], W_columns=1,W=None,kappa
k.input_dim = input_dim k.input_dim = input_dim
warnings.warn("kernel's input dimension overwritten to fit input_dim parameter.") warnings.warn("kernel's input dimension overwritten to fit input_dim parameter.")
k_coreg = coregionalise(num_outputs,W_columns,W,kappa) k_coreg = coregionalize(num_outputs,W_columns,W,kappa)
kernel = kernel_list[0]**k_coreg.copy() kernel = kernel_list[0]**k_coreg.copy()
for k in kernel_list[1:]: for k in kernel_list[1:]:
k_coreg = coregionalise(num_outputs,W_columns,W,kappa) k_coreg = coregionalize(num_outputs,W_columns,W,kappa)
kernel += k**k_coreg.copy() kernel += k**k_coreg.copy()
return kernel return kernel

View file

@ -1,11 +1,11 @@
import bias import bias
import Brownian import Brownian
import coregionalise import coregionalize
import exponential import exponential
import finite_dimensional import finite_dimensional
import fixed import fixed
import gibbs import gibbs
import hetero #import hetero #hetero.py is not commited: omitting for now. JH.
import hierarchical import hierarchical
import independent_outputs import independent_outputs
import linear import linear

View file

@ -7,7 +7,7 @@ from GPy.util.linalg import mdot, pdinv
import pdb import pdb
from scipy import weave from scipy import weave
class Coregionalise(Kernpart): class Coregionalize(Kernpart):
""" """
Kernel for intrinsic/linear coregionalization models Kernel for intrinsic/linear coregionalization models

View file

@ -4,12 +4,7 @@
import unittest import unittest
import numpy as np import numpy as np
import GPy import GPy
<<<<<<< HEAD
verbose = False verbose = False
=======
>>>>>>> 1bc93747178b0bab1b7177568388ebd4207647e0
class KernelTests(unittest.TestCase): class KernelTests(unittest.TestCase):
def test_kerneltie(self): def test_kerneltie(self):
@ -93,7 +88,7 @@ class KernelTests(unittest.TestCase):
Y = np.vstack((Y1,Y2)) Y = np.vstack((Y1,Y2))
k1 = GPy.kern.rbf(1) + GPy.kern.bias(1) k1 = GPy.kern.rbf(1) + GPy.kern.bias(1)
k2 = GPy.kern.coregionalise(2,1) k2 = GPy.kern.coregionalize(2,1)
kern = k1**k2 kern = k1**k2
self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose)) self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose))

View file

@ -9,8 +9,8 @@ def build_lcm(input_dim, num_outputs, CK = [], NC = [], W_columns=1,W=None,kappa
:input_dim: Input dimensionality :input_dim: Input dimensionality
:num_outputs: Number of outputs :num_outputs: Number of outputs
:param CK: List of coregionalized kernels (i.e., this will be multiplied by a coregionalise kernel). :param CK: List of coregionalized kernels (i.e., this will be multiplied by a coregionalize kernel).
:param K: List of kernels that will be added up together with CK, but won't be multiplied by a coregionalise kernel :param K: List of kernels that will be added up together with CK, but won't be multiplied by a coregionalize kernel
:param W_columns: number tuples of the corregionalization parameters 'coregion_W' :param W_columns: number tuples of the corregionalization parameters 'coregion_W'
:type W_columns: integer :type W_columns: integer
""" """
@ -25,9 +25,9 @@ def build_lcm(input_dim, num_outputs, CK = [], NC = [], W_columns=1,W=None,kappa
k.input_dim = input_dim + 1 k.input_dim = input_dim + 1
warnings.warn("kernel's input dimension overwritten to fit input_dim parameter.") warnings.warn("kernel's input dimension overwritten to fit input_dim parameter.")
kernel = CK[0].prod(kern.coregionalise(num_outputs,W_columns,W,kappa),tensor=True) kernel = CK[0].prod(kern.coregionalize(num_outputs,W_columns,W,kappa),tensor=True)
for k in CK[1:]: for k in CK[1:]:
k_coreg = kern.coregionalise(num_outputs,W_columns,W,kappa) k_coreg = kern.coregionalize(num_outputs,W_columns,W,kappa)
kernel += k.prod(k_coreg,tensor=True) kernel += k.prod(k_coreg,tensor=True)
for k in NC: for k in NC:
kernel += k kernel += k