1# Copyright (c) 2012 - 2014 the GPy Austhors (see AUTHORS.txt) 2# Licensed under the BSD 3-clause license (see LICENSE.txt) 3 4import numpy as np 5from ..core import GP 6from .. import likelihoods 7from .. import kern 8from .. import util 9 10class GPCoregionalizedRegression(GP): 11 """ 12 Gaussian Process model for heteroscedastic multioutput regression 13 14 This is a thin wrapper around the models.GP class, with a set of sensible defaults 15 16 :param X_list: list of input observations corresponding to each output 17 :type X_list: list of numpy arrays 18 :param Y_list: list of observed values related to the different noise models 19 :type Y_list: list of numpy arrays 20 :param kernel: a GPy kernel ** Coregionalized, defaults to RBF ** Coregionalized 21 :type kernel: None | GPy.kernel defaults 22 :likelihoods_list: a list of likelihoods, defaults to list of Gaussian likelihoods 23 :type likelihoods_list: None | a list GPy.likelihoods 24 :param name: model name 25 :type name: string 26 :param W_rank: number tuples of the corregionalization parameters 'W' (see coregionalize kernel documentation) 27 :type W_rank: integer 28 :param kernel_name: name of the kernel 29 :type kernel_name: string 30 """ 31 def __init__(self, X_list, Y_list, kernel=None, likelihoods_list=None, name='GPCR',W_rank=1,kernel_name='coreg'): 32 33 #Input and Output 34 X,Y,self.output_index = util.multioutput.build_XY(X_list,Y_list) 35 Ny = len(Y_list) 36 37 #Kernel 38 if kernel is None: 39 kernel = kern.RBF(X.shape[1]-1) 40 41 kernel = util.multioutput.ICM(input_dim=X.shape[1]-1, num_outputs=Ny, kernel=kernel, W_rank=W_rank,name=kernel_name) 42 43 #Likelihood 44 likelihood = util.multioutput.build_likelihood(Y_list,self.output_index,likelihoods_list) 45 46 super(GPCoregionalizedRegression, self).__init__(X,Y,kernel,likelihood, Y_metadata={'output_index':self.output_index}) 47