class SquaredExponentialCovariance(Covariance):
    def __init__(self, sigma, scale):
        """
        sigma - kernel width 
        scale - kernel scalling
        """
        Covariance.__init__(self)
        self.kernel=GaussianKernel(sigma);
        self.scale=scale
    
    def compute(self, X, Y=None):
        return (self.scale**2)*self.kernel.kernel(X, Y)
    
    @abstractmethod
    def gen_num_hyperparameters(self):
        return 2
    
    @abstractmethod
    def get_hyperparameters(self):
        return array([self.sigma, self.scale])
    
    @abstractmethod
    def set_hyperparameters(self, theta):
        assert(len(shape(theta))==1)
        assert(len(theta)==2)
        
        self.kernel.sigma=theta[0]
        self.kernel.scale=theta[1]
        
Esempio n. 2
0
class SquaredExponentialCovariance(Covariance):
    def __init__(self, sigma, scale):
        """
        sigma - kernel width 
        scale - kernel scalling
        """
        Covariance.__init__(self)
        self.kernel = GaussianKernel(sigma)
        self.scale = scale

    def compute(self, X, Y=None):
        return (self.scale**2) * self.kernel.kernel(X, Y)

    @abstractmethod
    def gen_num_hyperparameters(self):
        return 2

    @abstractmethod
    def get_hyperparameters(self):
        return array([self.sigma, self.scale])

    @abstractmethod
    def set_hyperparameters(self, theta):
        assert (len(shape(theta)) == 1)
        assert (len(theta) == 2)

        self.kernel.sigma = theta[0]
        self.kernel.scale = theta[1]