From 127340d17d8711f53858d8a900475196d91e9fd2 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Mon, 16 Sep 2013 15:45:23 +0100 Subject: [PATCH] likelihoods are now Parameterized objects --- GPy/core/parameterized.py | 5 ++++- GPy/likelihoods/ep.py | 2 ++ GPy/likelihoods/gaussian.py | 2 ++ GPy/likelihoods/gaussian_mixed_noise.py | 2 ++ GPy/likelihoods/likelihood.py | 13 +++++-------- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/GPy/core/parameterized.py b/GPy/core/parameterized.py index 015f35f5..15e11134 100644 --- a/GPy/core/parameterized.py +++ b/GPy/core/parameterized.py @@ -372,7 +372,10 @@ class Parameterized(object): for j in tie: ties[j] = '(' + str(i) + ')' - values = ['%.4f' % float(v) for v in values] + if values.size == 1: + values = ['%.4f' %float(values)] + else: + values = ['%.4f' % float(v) for v in values] max_names = max([len(names[i]) for i in range(len(names))] + [len(header[0])]) max_values = max([len(values[i]) for i in range(len(values))] + [len(header[1])]) max_constraint = max([len(constraints[i]) for i in range(len(constraints))] + [len(header[2])]) diff --git a/GPy/likelihoods/ep.py b/GPy/likelihoods/ep.py index c9f23839..9a816e65 100644 --- a/GPy/likelihoods/ep.py +++ b/GPy/likelihoods/ep.py @@ -37,6 +37,8 @@ class EP(likelihood): self.VVT_factor = self.V self.trYYT = 0. + super(EP, self).__init__() + def restart(self): self.tau_tilde = np.zeros(self.N) self.v_tilde = np.zeros(self.N) diff --git a/GPy/likelihoods/gaussian.py b/GPy/likelihoods/gaussian.py index cdf54dd6..8f66d074 100644 --- a/GPy/likelihoods/gaussian.py +++ b/GPy/likelihoods/gaussian.py @@ -34,6 +34,8 @@ class Gaussian(likelihood): self._variance = np.asarray(variance) + 1. self._set_params(np.asarray(variance)) + super(Gaussian, self).__init__() + def set_data(self, data): self.data = data self.N, D = data.shape diff --git a/GPy/likelihoods/gaussian_mixed_noise.py b/GPy/likelihoods/gaussian_mixed_noise.py index e7df2584..4df01ec2 100644 --- a/GPy/likelihoods/gaussian_mixed_noise.py +++ b/GPy/likelihoods/gaussian_mixed_noise.py @@ -45,6 +45,8 @@ class Gaussian_Mixed_Noise(likelihood): self.set_data(data_list) self._set_params(np.asarray(noise_params)) + super(Gaussian_Mixed_Noise, self).__init__() + def set_data(self, data_list): self.data = np.vstack(data_list) self.N, D = self.data.shape diff --git a/GPy/likelihoods/likelihood.py b/GPy/likelihoods/likelihood.py index d073ba6e..cda62bfc 100644 --- a/GPy/likelihoods/likelihood.py +++ b/GPy/likelihoods/likelihood.py @@ -1,7 +1,8 @@ import numpy as np import copy +from ..core.parameterized import Parameterized -class likelihood: +class likelihood(Parameterized): """ The atom for a likelihood class @@ -16,10 +17,10 @@ class likelihood: self.is_heteroscedastic : enables significant computational savings in GP self.precision : a scalar or vector representation of the effective target precision self.YYT : (optional) = np.dot(self.Y, self.Y.T) enables computational savings for D>N - self.V : self.precision * self.Y + self.V : self.precision * self.Y """ - def __init__(self,data): - raise ValueError, "this class is not to be instantiated" + def __init__(self): + Parameterized.__init__(self) def _get_params(self): raise NotImplementedError @@ -38,7 +39,3 @@ class likelihood: def predictive_values(self, mu, var): raise NotImplementedError - - def copy(self): - """ Returns a (deep) copy of the current likelihood """ - return copy.deepcopy(self)