From 54568898173f514bf6e069df23cef0fd711211dd Mon Sep 17 00:00:00 2001 From: Nicolas Date: Wed, 5 Jun 2013 18:51:26 +0100 Subject: [PATCH 1/4] removed examples with non public datasets --- GPy/examples/dimensionality_reduction.py | 78 ++++++++++++------------ GPy/examples/tutorials.py | 4 +- 2 files changed, 43 insertions(+), 39 deletions(-) diff --git a/GPy/examples/dimensionality_reduction.py b/GPy/examples/dimensionality_reduction.py index b3320ca9..1cad6340 100644 --- a/GPy/examples/dimensionality_reduction.py +++ b/GPy/examples/dimensionality_reduction.py @@ -304,32 +304,33 @@ def mrd_simulation(optimize=True, plot=True, plot_sim=True, **kw): m.plot_scales("MRD Scales") return m -def brendan_faces(): - from GPy import kern - data = GPy.util.datasets.brendan_faces() - Q = 2 - Y = data['Y'][0:-1:10, :] - # Y = data['Y'] - Yn = Y - Y.mean() - Yn /= Yn.std() +# # Commented out because dataset is missing +# def brendan_faces(): +# from GPy import kern +# data = GPy.util.datasets.brendan_faces() +# Q = 2 +# Y = data['Y'][0:-1:10, :] +# # Y = data['Y'] +# Yn = Y - Y.mean() +# Yn /= Yn.std() - m = GPy.models.GPLVM(Yn, Q) - # m = GPy.models.BayesianGPLVM(Yn, Q, num_inducing=100) +# m = GPy.models.GPLVM(Yn, Q) +# # m = GPy.models.BayesianGPLVM(Yn, Q, num_inducing=100) - # optimize - m.constrain('rbf|noise|white', GPy.core.transformations.logexp_clipped()) +# # optimize +# m.constrain('rbf|noise|white', GPy.core.transformations.logexp_clipped()) - m.ensure_default_constraints() - m.optimize('scg', messages=1, max_f_eval=10000) +# m.ensure_default_constraints() +# m.optimize('scg', messages=1, max_f_eval=10000) - ax = m.plot_latent(which_indices=(0, 1)) - y = m.likelihood.Y[0, :] - data_show = GPy.util.visualize.image_show(y[None, :], dimensions=(20, 28), transpose=True, invert=False, scale=False) - lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) - raw_input('Press enter to finish') - plt.close('all') +# ax = m.plot_latent(which_indices=(0, 1)) +# y = m.likelihood.Y[0, :] +# data_show = GPy.util.visualize.image_show(y[None, :], dimensions=(20, 28), transpose=True, invert=False, scale=False) +# lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) +# raw_input('Press enter to finish') +# plt.close('all') - return m +# return m def stick(): data = GPy.util.datasets.stick() @@ -349,27 +350,28 @@ def stick(): return m -def cmu_mocap(subject='35', motion=['01'], in_place=True): +# # Commented out because dataset is missing +# def cmu_mocap(subject='35', motion=['01'], in_place=True): - data = GPy.util.datasets.cmu_mocap(subject, motion) - Y = data['Y'] - if in_place: - # Make figure move in place. - data['Y'][:, 0:3] = 0.0 - m = GPy.models.GPLVM(data['Y'], 2, normalize_Y=True) +# data = GPy.util.datasets.cmu_mocap(subject, motion) +# Y = data['Y'] +# if in_place: +# # Make figure move in place. +# data['Y'][:, 0:3] = 0.0 +# m = GPy.models.GPLVM(data['Y'], 2, normalize_Y=True) - # optimize - m.ensure_default_constraints() - m.optimize(messages=1, max_f_eval=10000) +# # optimize +# m.ensure_default_constraints() +# m.optimize(messages=1, max_f_eval=10000) - ax = m.plot_latent() - y = m.likelihood.Y[0, :] - data_show = GPy.util.visualize.skeleton_show(y[None, :], data['skel']) - lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) - raw_input('Press enter to finish') - plt.close('all') +# ax = m.plot_latent() +# y = m.likelihood.Y[0, :] +# data_show = GPy.util.visualize.skeleton_show(y[None, :], data['skel']) +# lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) +# raw_input('Press enter to finish') +# plt.close('all') - return m +# return m # def BGPLVM_oil(): # data = GPy.util.datasets.oil() diff --git a/GPy/examples/tutorials.py b/GPy/examples/tutorials.py index e610fcf4..6950af37 100644 --- a/GPy/examples/tutorials.py +++ b/GPy/examples/tutorials.py @@ -143,5 +143,7 @@ def model_interaction(): X = np.random.randn(20,1) Y = np.sin(X) + np.random.randn(*X.shape)*0.01 + 5. k = GPy.kern.rbf(1) + GPy.kern.bias(1) - return GPy.models.GPRegression(X, Y, kernel=k) + m = GPy.models.GPRegression(X, Y, kernel=k) + m.ensure_default_constraints() + return m From 02e429a51f3d729c09ecd3619c276b80d99e3020 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Wed, 5 Jun 2013 18:54:58 +0100 Subject: [PATCH 2/4] removed examples with non public datasets --- GPy/examples/dimensionality_reduction.py | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/GPy/examples/dimensionality_reduction.py b/GPy/examples/dimensionality_reduction.py index 1cad6340..3e6ad841 100644 --- a/GPy/examples/dimensionality_reduction.py +++ b/GPy/examples/dimensionality_reduction.py @@ -332,23 +332,24 @@ def mrd_simulation(optimize=True, plot=True, plot_sim=True, **kw): # return m -def stick(): - data = GPy.util.datasets.stick() - m = GPy.models.GPLVM(data['Y'], 2) +# # Commented out because dataset is missing +# def stick(): +# data = GPy.util.datasets.stick() +# m = GPy.models.GPLVM(data['Y'], 2) - # optimize - m.ensure_default_constraints() - m.optimize(messages=1, max_f_eval=10000) - m._set_params(m._get_params()) +# # optimize +# m.ensure_default_constraints() +# m.optimize(messages=1, max_f_eval=10000) +# m._set_params(m._get_params()) - ax = m.plot_latent() - y = m.likelihood.Y[0, :] - data_show = GPy.util.visualize.stick_show(y[None, :], connect=data['connect']) - lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) - raw_input('Press enter to finish') - plt.close('all') +# ax = m.plot_latent() +# y = m.likelihood.Y[0, :] +# data_show = GPy.util.visualize.stick_show(y[None, :], connect=data['connect']) +# lvm_visualizer = GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) +# raw_input('Press enter to finish') +# plt.close('all') - return m +# return m # # Commented out because dataset is missing # def cmu_mocap(subject='35', motion=['01'], in_place=True): From ca9f9b43d652df3689cf58d8cfa34bbb6ec2a970 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Wed, 5 Jun 2013 18:57:26 +0100 Subject: [PATCH 3/4] FITC example: bound for lengthscale --- GPy/examples/classification.py | 1 + 1 file changed, 1 insertion(+) diff --git a/GPy/examples/classification.py b/GPy/examples/classification.py index d6f6cad9..4f1a4ebc 100644 --- a/GPy/examples/classification.py +++ b/GPy/examples/classification.py @@ -162,6 +162,7 @@ def FITC_crescent_data(num_inducing=10, seed=default_seed): Y[Y.flatten()==-1]=0 m = GPy.models.FITCClassification(data['X'], Y,num_inducing=num_inducing) + m.constrain_bounded('.*len',1.,1e3) m.ensure_default_constraints() m['.*len'] = 3. #m.update_likelihood_approximation() From 8d8408dee0840ebd3405817a220b055266aed76e Mon Sep 17 00:00:00 2001 From: Ricardo Date: Wed, 5 Jun 2013 19:18:29 +0100 Subject: [PATCH 4/4] _Xmean is now Xoffset and _Xstd is now _Xscale --- GPy/core/gp.py | 2 +- GPy/core/gp_base.py | 12 ++++++------ GPy/core/sparse_gp.py | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/GPy/core/gp.py b/GPy/core/gp.py index 115c8d0f..7b67e722 100644 --- a/GPy/core/gp.py +++ b/GPy/core/gp.py @@ -142,7 +142,7 @@ class GP(GPBase): """ # normalize X values - Xnew = (Xnew.copy() - self._Xmean) / self._Xstd + Xnew = (Xnew.copy() - self._Xoffset) / self._Xscale mu, var = self._raw_predict(Xnew, full_cov=full_cov, which_parts=which_parts) # now push through likelihood diff --git a/GPy/core/gp_base.py b/GPy/core/gp_base.py index 9c7e4a9e..0799e0c2 100644 --- a/GPy/core/gp_base.py +++ b/GPy/core/gp_base.py @@ -21,12 +21,12 @@ class GPBase(Model): self.num_data, self.output_dim = self.likelihood.data.shape if normalize_X: - self._Xmean = X.mean(0)[None, :] - self._Xstd = X.std(0)[None, :] - self.X = (X.copy() - self._Xmean) / self._Xstd + self._Xoffset = X.mean(0)[None, :] + self._Xscale = X.std(0)[None, :] + self.X = (X.copy() - self._Xoffset) / self._Xscale else: - self._Xmean = np.zeros((1, self.input_dim)) - self._Xstd = np.ones((1, self.input_dim)) + self._Xoffset = np.zeros((1, self.input_dim)) + self._Xscale = np.ones((1, self.input_dim)) super(GPBase, self).__init__() # All leaf nodes should call self._set_params(self._get_params()) at @@ -107,7 +107,7 @@ class GPBase(Model): if self.X.shape[1] == 1: - Xu = self.X * self._Xstd + self._Xmean # NOTE self.X are the normalized values now + Xu = self.X * self._Xscale + self._Xoffset # NOTE self.X are the normalized values now Xnew, xmin, xmax = x_frame1D(Xu, plot_limits=plot_limits) m, _, lower, upper = self.predict(Xnew, which_parts=which_parts) diff --git a/GPy/core/sparse_gp.py b/GPy/core/sparse_gp.py index c1aed5d5..df3160f1 100644 --- a/GPy/core/sparse_gp.py +++ b/GPy/core/sparse_gp.py @@ -43,11 +43,11 @@ class SparseGP(GPBase): self.X_variance = X_variance if normalize_X: - self.Z = (self.Z.copy() - self._Xmean) / self._Xstd + self.Z = (self.Z.copy() - self._Xoffset) / self._Xscale # normalize X uncertainty also if self.has_uncertain_inputs: - self.X_variance /= np.square(self._Xstd) + self.X_variance /= np.square(self._Xscale) def _compute_kernel_matrices(self): # kernel computations, using BGPLVM notation @@ -269,9 +269,9 @@ class SparseGP(GPBase): """ # normalize X values - Xnew = (Xnew.copy() - self._Xmean) / self._Xstd + Xnew = (Xnew.copy() - self._Xoffset) / self._Xscale if X_variance_new is not None: - X_variance_new = X_variance_new / self._Xstd ** 2 + X_variance_new = X_variance_new / self._Xscale ** 2 # here's the actual prediction by the GP model mu, var = self._raw_predict(Xnew, X_variance_new, full_cov=full_cov, which_parts=which_parts) @@ -292,13 +292,13 @@ class SparseGP(GPBase): GPBase.plot(self, samples=0, plot_limits=None, which_data='all', which_parts='all', resolution=None, levels=20, ax=ax) if self.X.shape[1] == 1: if self.has_uncertain_inputs: - Xu = self.X * self._Xstd + self._Xmean # NOTE self.X are the normalized values now + Xu = self.X * self._Xscale + self._Xoffset # NOTE self.X are the normalized values now ax.errorbar(Xu[which_data, 0], self.likelihood.data[which_data, 0], xerr=2 * np.sqrt(self.X_variance[which_data, 0]), ecolor='k', fmt=None, elinewidth=.5, alpha=.5) - Zu = self.Z * self._Xstd + self._Xmean + Zu = self.Z * self._Xscale + self._Xoffset ax.plot(Zu, np.zeros_like(Zu) + ax.get_ylim()[0], 'r|', mew=1.5, markersize=12) elif self.X.shape[1] == 2: - Zu = self.Z * self._Xstd + self._Xmean + Zu = self.Z * self._Xscale + self._Xoffset ax.plot(Zu[:, 0], Zu[:, 1], 'wo')