Beispiel #1
0
    def __init__(self,
                 X,
                 kernF,
                 kernY,
                 Y,
                 K=2,
                 alpha=1.,
                 prior_Z='symmetric',
                 name='MOHGP'):

        N, self.D = Y.shape
        self.Y = Y
        self.X = X
        assert X.shape[0] == self.D, "input data don't match observations"

        CollapsedMixture.__init__(self, N, K, prior_Z, alpha, name)

        self.kernF = kernF
        self.kernY = kernY
        self.link_parameters(self.kernF, self.kernY)

        #initialize kernels
        self.Sf = self.kernF.K(self.X)
        self.Sy = self.kernY.K(self.X)
        self.Sy_inv, self.Sy_chol, self.Sy_chol_inv, self.Sy_logdet = pdinv(
            self.Sy + np.eye(self.D) * 1e-6)

        #Computations that can be done outside the optimisation loop
        self.YYT = self.Y[:, :, np.newaxis] * self.Y[:, np.newaxis, :]
        self.YTY = np.dot(self.Y.T, self.Y)

        self.do_computations()
Beispiel #2
0
    def __init__(self,
                 X,
                 Y,
                 K=2,
                 kernels=None,
                 variance=1.,
                 alpha=1.,
                 prior_Z='symmetric',
                 name='OMGP'):

        N, self.D = Y.shape
        self.Y = Y
        self.YYT = tdot(self.Y)

        self.X = X

        if kernels == None:
            self.kern = []
            for i in range(K):
                self.kern.append(GPy.kern.RBF(input_dim=1))
        else:
            self.kern = kernels

        CollapsedMixture.__init__(self, N, K, prior_Z, alpha, name)

        self.link_parameter(
            GPy.core.parameterization.param.Param(
                'variance', variance,
                GPy.core.parameterization.transformations.Logexp()))
        self.link_parameters(*self.kern)
Beispiel #3
0
    def __init__(self, X, Y, K=2, kernels=None, variance=1., alpha=1., prior_Z='symmetric', name='OMGP'):

        N, self.D = Y.shape
        self.Y = Y
        self.X = X

        if kernels == None:
            self.kern = []
            for i in range(K):
                self.kern.append(GPy.kern.RBF(input_dim=1))
        else:
            self.kern = kernels

        CollapsedMixture.__init__(self, N, K, prior_Z, alpha, name)
        
        self.link_parameter(GPy.core.parameterization.param.Param('variance', variance, GPy.core.parameterization.transformations.Logexp()))
        self.link_parameters(*self.kern)
Beispiel #4
0
    def __init__(self, X, kernF, kernY, Y, K=2, alpha=1., prior_Z='symmetric', name='MOHGP'):

        N,self.D = Y.shape
        self.Y = Y
        self.X = X
        assert X.shape[0]==self.D, "input data don't match observations"

        CollapsedMixture.__init__(self, N, K, prior_Z, alpha, name)

        self.kernF = kernF
        self.kernY = kernY
        self.link_parameters(self.kernF, self.kernY)

        #initialize kernels
        self.Sf = self.kernF.K(self.X)
        self.Sy = self.kernY.K(self.X)
        self.Sy_inv, self.Sy_chol, self.Sy_chol_inv, self.Sy_logdet = pdinv(self.Sy+np.eye(self.D)*1e-6)

        #Computations that can be done outside the optimisation loop
        self.YYT = self.Y[:,:,np.newaxis]*self.Y[:,np.newaxis,:]
        self.YTY = np.dot(self.Y.T,self.Y)

        self.do_computations()