physbo.blm.prior.gauss のソースコード

import numpy as np

[ドキュメント]class cov_const: """ isotropic variance-covariance All elements have the same variance and are independent with each other Attributes ========== params: float half of log of covariance sigma2: float covariance prec: float precision (= inv. of covariance) """ def __init__( self, params = None ): """ Parameters ========== params: float half of log of covariance (default: numpy.log(1)) """ if params is None: self.params = np.log(1) self.sigma2, self.prec = self._trans_params( params )
[ドキュメント] def get_cov( self, nbasis, params = None ): """ computes the covariance Parameters ========== nbasis: int the number of components params: float half of log of variance (default: self.params) Returns ======= numpy.ndarray nbasis-by-n-basis covariance matrix """ if params is None: params = self.params sigma2, prec = self._trans_params( params ) return np.identity( nbasis ) * sigma2
[ドキュメント] def get_prec( self, nbasis, params = None ): """ computes the precision Parameters ========== nbasis: int the number of components params: float half of log of variance (default: self.params) Returns ======= numpy.ndarray nbasis-by-n-basis precision matrix """ if params is None: params = self.params sigma2, prec = self._trans_params( params ) return np.identity( nbasis ) * prec
[ドキュメント] def set_params( self, params ): """ sets params Parameters ========== params: float half of log of variance """ self.params = params self.sigma2, self.prec = self._trans_params( params )
def _trans_params( self, params = None ): """ calculates variance and precise from params Parameters ========== params: float half of log of variance (default: self.params) Returns ======= sigma2: float variance prec: float precise (= inv. of variance) """ if params is None: params = self.params sigma2 = np.exp( 2 * params ) prec = 1/sigma2 return sigma2, prec
[ドキュメント]class gauss: """ Gaussian prior Attributes ========== nbasis: int number of components cov: cov_const covariance """ def __init__( self, nbasis, cov = None ): """ Parameters ========== nbasis: int number of components cov: cov_const (default: cov_const()) """ self._init_cov( cov ) self.nbasis = nbasis
[ドキュメント] def get_mean( self, params = None ): """ calculates the mean value of priors Parameter ========= params: float half of log of variance (not used) Returns ======= numpy.ndarray """ return np.zeros( self.nbasis )
[ドキュメント] def get_cov( self, params = None ): """ calculates the variance-covariance matrix of priors Parameter ========= params: float half of log of variance (default: self.cov.params) Returns ======= numpy.ndarray """ return self.cov.get_cov( self.nbasis, params )
[ドキュメント] def get_prec( self, params = None ): """ calculates the precise matrix of priors Parameter ========= params: float half of log of variance (default: self.cov.params) Returns ======= numpy.ndarray """ return self.cov.get_prec( self.nbasis, params )
[ドキュメント] def set_params( self, params ): """ sets params Parameter ========= params: float half of log of variance """ self.cov.set_params( params )
def _init_cov( self, cov ): """ initialize covariance Parameters ========== cov: cov_const default: ``cov_const()`` """ self.cov = cov if cov is None: self.cov = cov_const()