Ejemplo n.º 1
0
 def setUp(self):
     sp.random.seed(1)
     self.n = 4
     self.rank = 2
     self.C = LowRankCov(self.n, self.rank)
     self.name = 'lowrank'
     self.C.setRandomParams()
Ejemplo n.º 2
0
    def rank(self, value):
        self._rank = value
        if value is None:
            self.cat_cov = FreeFormCov(self.n_cats, jitter=self.jitter)
        else:
            assert value <= self.n_cats, 'rank cant be higher than number of categories'
            self.cat_cov = LowRankCov(self.n_cats, value)

        self.clear_all()
        self._notify()
Ejemplo n.º 3
0
 def setColCovars(self, Cn = None, rank = 1):
     assert Cn is not None, 'Cn has to be specified.'
     self._rank_c = rank
     self._dim_c = Cn.dim
     self._Cr = LowRankCov(self._dim_c, rank)
     self._Cn = Cn
     # register
     self._Cr.register(self.col_covs_have_changed)
     self._Cn.register(self.col_covs_have_changed)
     self.col_covs_have_changed()
Ejemplo n.º 4
0
 def setColCovars(self, Cr=None, Cn=None, rank=1):
     assert Cn is not None, 'Cn has to be specified.'
     # set noise
     self._Cn = Cn
     self._dim_c = Cn.dim
     # set region
     if Cr is None: Cr = LowRankCov(self._dim_c, rank)
     self._Cr = Cr
     self._rank_c = self.Cr.X.shape[1]
     # register
     self._Cr.register(self.col_covs_have_changed)
     self._Cn.register(self.col_covs_have_changed)
     self.col_covs_have_changed()
Ejemplo n.º 5
0
def define_gp(Y, Xr, mean, Ie, type):
    P = 2
    if type == 'null':
        _Cr = FixedCov(sp.ones([2, 2]))
        _Cr.scale = 1e-9
        _Cr.act_scale = False
        covar = CategoricalLR(_Cr, sp.ones((Xr.shape[0], 1)), Ie)
    else:
        if type == 'block': _Cr = FixedCov(sp.ones((P, P)))
        elif type == 'rank1': _Cr = LowRankCov(P, 1)
        elif type == 'full': _Cr = FreeFormCov(P)
        else: print('poppo')
        covar = CategoricalLR(_Cr, Xr, Ie)
    _gp = GP(covar=covar, mean=mean)
    return _gp
Ejemplo n.º 6
0
 def setColCovars(self, Cg=None, Cn=None, rank=1, Cr=None):
     assert Cg is not None, 'Cov2KronSum: Specify Cg!'
     assert Cn is not None, 'Cov2KronSum: Specify Cn!'
     assert Cg.dim == Cn.dim, 'Cov2KronSum: Cg and Cn must have same dimensions!'
     if Cr is None:
         Cr = LowRankCov(Cg.dim, rank)
         Cr.setRandomParams()
         self._rank_c = rank
     else:
         self._rank_c = Cr.X.shape[1]
     self._dim_c = Cg.dim
     self._Cr = Cr
     self._Cg = Cg
     self._Cn = Cn
     self._Cg.register(self.col_covs_have_changed)
     self._Cn.register(self.col_covs_have_changed)
     self.col_covs_have_changed()
Ejemplo n.º 7
0
 def setColCovars(self, Cg=None, Cn=None, rank=1, Cr=None):
     assert Cg is not None, 'Cov2KronSum: Specify Cg!'
     assert Cn is not None, 'Cov2KronSum: Specify Cn!'
     assert Cg.dim==Cn.dim, 'Cov2KronSum: Cg and Cn must have same dimensions!'
     assert Cr is None, '%s: more general covariance matrices are not supported at the moment' % self.__class__.__name__
     if Cr is None:
         Cr = LowRankCov(Cg.dim, rank)
         Cr.setRandomParams()
         self._rank_c = rank
     else:
         self._rank_c = self.Cr.dim()
     self._dim_c = Cg.dim
     self._Cr = Cr
     self._Cg = Cg
     self._Cn = Cn
     self._Cg.register(self.col_covs_have_changed)
     self._Cn.register(self.col_covs_have_changed)
     self.col_covs_have_changed()