rename _models to models_modules to include in doc

This commit is contained in:
Max Zwiessele 2013-11-28 10:01:32 +00:00
parent 50e9034a6d
commit 5809293c98
32 changed files with 748 additions and 689 deletions

View file

@ -4,20 +4,20 @@ Created on 14 Nov 2013
@author: maxz
'''
from _models.bayesian_gplvm import BayesianGPLVM
from _models.gp_regression import GPRegression
from _models.gp_classification import GPClassification#; _gp_classification = gp_classification ; del gp_classification
from _models.sparse_gp_regression import SparseGPRegression#; _sparse_gp_regression = sparse_gp_regression ; del sparse_gp_regression
from _models.svigp_regression import SVIGPRegression#; _svigp_regression = svigp_regression ; del svigp_regression
from _models.sparse_gp_classification import SparseGPClassification#; _sparse_gp_classification = sparse_gp_classification ; del sparse_gp_classification
from _models.fitc_classification import FITCClassification#; _fitc_classification = fitc_classification ; del fitc_classification
from _models.gplvm import GPLVM#; _gplvm = gplvm ; del gplvm
from _models.bcgplvm import BCGPLVM#; _bcgplvm = bcgplvm; del bcgplvm
from _models.sparse_gplvm import SparseGPLVM#; _sparse_gplvm = sparse_gplvm ; del sparse_gplvm
from _models.warped_gp import WarpedGP#; _warped_gp = warped_gp ; del warped_gp
from _models.bayesian_gplvm import BayesianGPLVM#; _bayesian_gplvm = bayesian_gplvm ; del bayesian_gplvm
from _models.mrd import MRD#; _mrd = mrd; del mrd
from _models.gradient_checker import GradientChecker#; _gradient_checker = gradient_checker ; del gradient_checker
from _models.gp_multioutput_regression import GPMultioutputRegression#; _gp_multioutput_regression = gp_multioutput_regression ; del gp_multioutput_regression
from _models.sparse_gp_multioutput_regression import SparseGPMultioutputRegression#; _sparse_gp_multioutput_regression = sparse_gp_multioutput_regression ; del sparse_gp_multioutput_regression
from _models.gradient_checker import GradientChecker
from models_modules.bayesian_gplvm import BayesianGPLVM
from models_modules.gp_regression import GPRegression
from models_modules.gp_classification import GPClassification#; _gp_classification = gp_classification ; del gp_classification
from models_modules.sparse_gp_regression import SparseGPRegression#; _sparse_gp_regression = sparse_gp_regression ; del sparse_gp_regression
from models_modules.svigp_regression import SVIGPRegression#; _svigp_regression = svigp_regression ; del svigp_regression
from models_modules.sparse_gp_classification import SparseGPClassification#; _sparse_gp_classification = sparse_gp_classification ; del sparse_gp_classification
from models_modules.fitc_classification import FITCClassification#; _fitc_classification = fitc_classification ; del fitc_classification
from models_modules.gplvm import GPLVM#; _gplvm = gplvm ; del gplvm
from models_modules.bcgplvm import BCGPLVM#; _bcgplvm = bcgplvm; del bcgplvm
from models_modules.sparse_gplvm import SparseGPLVM#; _sparse_gplvm = sparse_gplvm ; del sparse_gplvm
from models_modules.warped_gp import WarpedGP#; _warped_gp = warped_gp ; del warped_gp
from models_modules.bayesian_gplvm import BayesianGPLVM#; _bayesian_gplvm = bayesian_gplvm ; del bayesian_gplvm
from models_modules.mrd import MRD#; _mrd = mrd; del mrd
from models_modules.gradient_checker import GradientChecker#; _gradient_checker = gradient_checker ; del gradient_checker
from models_modules.gp_multioutput_regression import GPMultioutputRegression#; _gp_multioutput_regression = gp_multioutput_regression ; del gp_multioutput_regression
from models_modules.sparse_gp_multioutput_regression import SparseGPMultioutputRegression#; _sparse_gp_multioutput_regression = sparse_gp_multioutput_regression ; del sparse_gp_multioutput_regression
from models_modules.gradient_checker import GradientChecker

View file

@ -12,6 +12,7 @@ from GPy.util import plot_latent, linalg
from .gplvm import GPLVM
from GPy.util.plot_latent import most_significant_input_dimensions
from matplotlib import pyplot
from GPy.core.model import Model
class BayesianGPLVM(SparseGP, GPLVM):
"""
@ -285,6 +286,57 @@ class BayesianGPLVM(SparseGP, GPLVM):
self.init = state.pop()
SparseGP.setstate(self, state)
class BayesianGPLVMWithMissingData(Model):
"""
Bayesian Gaussian Process Latent Variable Model with missing data support.
NOTE: Missing data is assumed to be missing at random!
This extension comes with a large memory and computing time deficiency.
Use only if fraction of missing data at random is higher than 60%.
Otherwise, try filtering data before using this extension.
Y can hold missing data as given by `missing`, standard is :class:`~numpy.nan`.
If likelihood is given for Y, this likelihood will be discarded, but the parameters
of the likelihood will be taken. Also every effort of creating the same likelihood
will be done.
:param likelihood_or_Y: observed data (np.ndarray) or GPy.likelihood
:type likelihood_or_Y: :class:`~numpy.ndarray` | :class:`~GPy.likelihoods.likelihood.likelihood` instance
:param int input_dim: latent dimensionality
:param init: initialisation method for the latent space
:type init: 'PCA' | 'random'
"""
def __init__(self, likelihood_or_Y, input_dim, X=None, X_variance=None, init='PCA', num_inducing=10,
Z=None, kernel=None, missing=np.nan, **kwargs):
if type(likelihood_or_Y) is np.ndarray:
likelihood = Gaussian(likelihood_or_Y)
else:
likelihood = likelihood_or_Y
if X == None:
X = self.initialise_latent(init, input_dim, likelihood.Y)
self.init = init
if X_variance is None:
X_variance = np.clip((np.ones_like(X) * 0.5) + .01 * np.random.randn(*X.shape), 0.001, 1)
if Z is None:
Z = np.random.permutation(X.copy())[:num_inducing]
assert Z.shape[1] == X.shape[1]
if kernel is None:
kernel = kern.rbf(input_dim) # + kern.white(input_dim)
SparseGP.__init__(self, X, likelihood, kernel, Z=Z, X_variance=X_variance, **kwargs)
self.ensure_default_constraints()
def _get_param_names(self):
X_names = sum([['X_%i_%i' % (n, q) for q in range(self.input_dim)] for n in range(self.num_data)], [])
S_names = sum([['X_variance_%i_%i' % (n, q) for q in range(self.input_dim)] for n in range(self.num_data)], [])
return (X_names + S_names + SparseGP._get_param_names(self))
pass
def latent_cost_and_grad(mu_S, kern, Z, dL_dpsi0, dL_dpsi1, dL_dpsi2):
"""