From dfe500f8ebc5d543275128c84b802a7cb6c52e64 Mon Sep 17 00:00:00 2001 From: Nicolo Fusi Date: Tue, 19 Feb 2013 14:36:55 +0000 Subject: [PATCH 1/2] fixed inconsistent naming of parameters in LVM models --- GPy/models/BGPLVM.py | 4 ++-- GPy/models/GPLVM.py | 2 +- GPy/models/sparse_GP.py | 2 +- GPy/models/sparse_GPLVM.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/GPy/models/BGPLVM.py b/GPy/models/BGPLVM.py index 7ee52796..0eb957a9 100644 --- a/GPy/models/BGPLVM.py +++ b/GPy/models/BGPLVM.py @@ -40,8 +40,8 @@ class Bayesian_GPLVM(sparse_GP, GPLVM): sparse_GP.__init__(self, X, Gaussian(Y), kernel, Z=Z, X_uncertainty=S, **kwargs) def _get_param_names(self): - X_names = sum([['X_%i_%i'%(n,q) for n in range(self.N)] for q in range(self.Q)],[]) - S_names = sum([['S_%i_%i'%(n,q) for n in range(self.N)] for q in range(self.Q)],[]) + X_names = sum([['X_%i_%i'%(n,q) for q in range(self.Q)] for n in range(self.N)],[]) + S_names = sum([['S_%i_%i'%(n,q) for q in range(self.Q)] for n in range(self.N)],[]) return (X_names + S_names + sparse_GP._get_param_names(self)) def _get_params(self): diff --git a/GPy/models/GPLVM.py b/GPy/models/GPLVM.py index 73762433..a0ee55ef 100644 --- a/GPy/models/GPLVM.py +++ b/GPy/models/GPLVM.py @@ -38,7 +38,7 @@ class GPLVM(GP): return np.random.randn(Y.shape[0], Q) def _get_param_names(self): - return sum([['X_%i_%i'%(n,q) for n in range(self.N)] for q in range(self.Q)],[]) + GP._get_param_names(self) + return sum([['X_%i_%i'%(n,q) for q in range(self.Q)] for n in range(self.N)],[]) + GP._get_param_names(self) def _get_params(self): return np.hstack((self.X.flatten(), GP._get_params(self))) diff --git a/GPy/models/sparse_GP.py b/GPy/models/sparse_GP.py index 73d9416a..95460d87 100644 --- a/GPy/models/sparse_GP.py +++ b/GPy/models/sparse_GP.py @@ -148,7 +148,7 @@ class sparse_GP(GP): return np.hstack([self.Z.flatten(),GP._get_params(self)]) def _get_param_names(self): - return sum([['iip_%i_%i'%(i,j) for i in range(self.Z.shape[0])] for j in range(self.Z.shape[1])],[]) + GP._get_param_names(self) + return sum([['iip_%i_%i'%(i,j) for j in range(self.Z.shape[1])] for i in range(self.Z.shape[0])],[]) + GP._get_param_names(self) def log_likelihood(self): """ Compute the (lower bound on the) log marginal likelihood """ diff --git a/GPy/models/sparse_GPLVM.py b/GPy/models/sparse_GPLVM.py index 84a04bfd..94559cca 100644 --- a/GPy/models/sparse_GPLVM.py +++ b/GPy/models/sparse_GPLVM.py @@ -28,7 +28,7 @@ class sparse_GPLVM(sparse_GP_regression, GPLVM): sparse_GP_regression.__init__(self, X, Y, **kwargs) def _get_param_names(self): - return (sum([['X_%i_%i'%(n,q) for n in range(self.N)] for q in range(self.Q)],[]) + return (sum([['X_%i_%i'%(n,q) for q in range(self.Q)] for n in range(self.N)],[]) + sparse_GP_regression._get_param_names(self)) def _get_params(self): From 12e895f8a7e2b8103b9ad8276bcbdfcb8d2f74cd Mon Sep 17 00:00:00 2001 From: Nicolo Fusi Date: Tue, 19 Feb 2013 14:40:28 +0000 Subject: [PATCH 2/2] added contribution from the prior to marginal LL printed in the model __str__ --- GPy/core/model.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GPy/core/model.py b/GPy/core/model.py index a0628c42..5160273b 100644 --- a/GPy/core/model.py +++ b/GPy/core/model.py @@ -294,7 +294,8 @@ class model(parameterised): strs = [str(p) if p is not None else '' for p in self.priors] width = np.array(max([len(p) for p in strs] + [5])) + 4 - s[0] = 'Marginal log-likelihood: {0:.3e}\n'.format(self.log_likelihood()) + s[0] + MLL = self.log_likelihood() + self.log_prior() + s[0] = 'Marginal log-likelihood: {0:.3e}\n'.format(MLL) + s[0] s[0] += "|{h:^{col}}".format(h = 'Prior', col = width) s[1] += '-'*(width + 1)