From 63ab143e7c7c3994d6b9b1fde0e5290d4b23f311 Mon Sep 17 00:00:00 2001 From: James Hensman Date: Thu, 12 Dec 2013 14:18:18 +0000 Subject: [PATCH] some tifying in the models classes --- GPy/likelihoods/bernoulli.py | 8 ++++++-- GPy/models/gp_classification.py | 19 ++++--------------- GPy/models/gp_multioutput_regression.py | 1 - GPy/models/gp_regression.py | 1 + GPy/models/gradient_checker.py | 6 ++---- GPy/models/mrd.py | 6 ++---- 6 files changed, 15 insertions(+), 26 deletions(-) diff --git a/GPy/likelihoods/bernoulli.py b/GPy/likelihoods/bernoulli.py index 774eaf17..062528ca 100644 --- a/GPy/likelihoods/bernoulli.py +++ b/GPy/likelihoods/bernoulli.py @@ -22,8 +22,12 @@ class Bernoulli(Likelihood): .. See also:: likelihood.py, for the parent class """ - def __init__(self, gp_link=None, analytical_mean=False, analytical_variance=False): - super(Bernoulli, self).__init__(gp_link, analytical_mean, analytical_variance) + def __init__(self, gp_link=None): + if gp_link is None: + gp_link = link_functions.Probit() + + super(Bernoulli, self).__init__(gp_link, 'Bernoulli') + if isinstance(gp_link , (link_functions.Heaviside, link_functions.Probit)): self.log_concave = True diff --git a/GPy/models/gp_classification.py b/GPy/models/gp_classification.py index fce51cfa..634fd4e5 100644 --- a/GPy/models/gp_classification.py +++ b/GPy/models/gp_classification.py @@ -1,7 +1,7 @@ # Copyright (c) 2013, Ricardo Andrade +# Copyright (c) 2013, the GPy Authors (see AUTHORS.txt) # Licensed under the BSD 3-clause license (see LICENSE.txt) - import numpy as np from ..core import GP from .. import likelihoods @@ -15,27 +15,16 @@ class GPClassification(GP): :param X: input observations :param Y: observed values, can be None if likelihood is not None - :param likelihood: a GPy likelihood, defaults to Binomial with probit link_function :param kernel: a GPy kernel, defaults to rbf - :param normalize_X: whether to normalize the input data before computing (predictions will be in original scales) - :type normalize_X: False|True - :param normalize_Y: whether to normalize the input data before computing (predictions will be in original scales) - :type normalize_Y: False|True .. Note:: Multiple independent outputs are allowed using columns of Y """ - def __init__(self,X,Y=None,likelihood=None,kernel=None,normalize_X=False,normalize_Y=False): + def __init__(self, X, Y, kernel=None): if kernel is None: kernel = kern.rbf(X.shape[1]) - if likelihood is None: - noise_model = likelihoods.binomial() - likelihood = likelihoods.EP(Y, noise_model) - elif Y is not None: - if not all(Y.flatten() == likelihood.data.flatten()): - raise Warning, 'likelihood.data and Y are different.' + likelihood = likelihoods.Bernoulli() - GP.__init__(self, X, likelihood, kernel, normalize_X=normalize_X) - self.ensure_default_constraints() + GP.__init__(self, X=X, Y=Y, kernel=kernel, likelihood=likelihood, name='gp_classification') diff --git a/GPy/models/gp_multioutput_regression.py b/GPy/models/gp_multioutput_regression.py index f6ceac9d..2286ff95 100644 --- a/GPy/models/gp_multioutput_regression.py +++ b/GPy/models/gp_multioutput_regression.py @@ -1,7 +1,6 @@ # Copyright (c) 2013, Ricardo Andrade # Licensed under the BSD 3-clause license (see LICENSE.txt) - import numpy as np from ..core import GP from .. import likelihoods diff --git a/GPy/models/gp_regression.py b/GPy/models/gp_regression.py index a833d11b..8be93d70 100644 --- a/GPy/models/gp_regression.py +++ b/GPy/models/gp_regression.py @@ -22,6 +22,7 @@ class GPRegression(GP): """ def __init__(self, X, Y, kernel=None): + if kernel is None: kernel = kern.rbf(X.shape[1]) diff --git a/GPy/models/gradient_checker.py b/GPy/models/gradient_checker.py index 5afcd7c4..775334ac 100644 --- a/GPy/models/gradient_checker.py +++ b/GPy/models/gradient_checker.py @@ -1,8 +1,6 @@ -''' -Created on 17 Jul 2013 +# ## Copyright (c) 2012, GPy authors (see AUTHORS.txt). +# Licensed under the BSD 3-clause license (see LICENSE.txt) -@author: maxz -''' from GPy.core.model import Model import itertools import numpy diff --git a/GPy/models/mrd.py b/GPy/models/mrd.py index 2b9ef805..4ef9bf47 100644 --- a/GPy/models/mrd.py +++ b/GPy/models/mrd.py @@ -1,8 +1,6 @@ -''' -Created on 10 Apr 2013 +# ## Copyright (c) 2013, GPy authors (see AUTHORS.txt). +# Licensed under the BSD 3-clause license (see LICENSE.txt) -@author: Max Zwiessele -''' from GPy.core import Model from GPy.core import SparseGP from GPy.util.linalg import PCA