コード例 #1
0
 def __mul__(self, other):
     if isinstance(other, CovarianceFunction):
         return CovarianceFunction(covariance=lambda x, y: self.covariance(x, y)*other.covariance(x, y))
     if isinstance(other, (Variable, PartialLink)):
         other = var2link(other)
         return CovarianceFunction(covariance=lambda x, y: self.covariance(x, y) * other)
     elif isinstance(other, (int, float)):
         return CovarianceFunction(covariance=lambda x, y: self.covariance(x, y) * other)
     else:
         raise ValueError("Only covarianceFunctions and numbers can be multiplied with CovarianceFunctions")
コード例 #2
0
 def __init__(self, scale, jitter=0.):
     self.scale = var2link(scale)
     covariance = lambda x, y: BF.exp(-BF.abs(x - y) /
                                      (scale)) + BF.delta(x, y) * jitter
     super().__init__(covariance=covariance)
コード例 #3
0
 def __init__(self, frequency, scale, jitter=0.):
     self.frequency = var2link(frequency)
     self.scale = var2link(scale)
     covariance = lambda x, y: BF.exp(-2 * BF.sin(np.pi * self.frequency * (
         x - y))**2 / scale**2) + BF.delta(x, y) * jitter
     super().__init__(covariance=covariance)
コード例 #4
0
 def __init__(self, frequency, jitter=0.):
     self.frequency = var2link(frequency)
     covariance = lambda x, y: BF.cos(2 * np.pi * self.frequency *
                                      (x - y)) + BF.delta(x, y) * jitter
     super().__init__(covariance=covariance)
コード例 #5
0
 def __init__(self, magnitude, jitter=0.):
     self.magnitude = var2link(magnitude)
     covariance = lambda x, y: magnitude * BF.delta(x, y) + BF.delta(
         x, y) * jitter
     super().__init__(covariance=covariance)
コード例 #6
0
 def get_joint_instance(self, query_points):
     x = var2link(query_points)
     return MultivariateNormalVariable(
         loc=self.mean_function(x),
         covariance_matrix=self.covariance_function(x),
         name=self.name + "(" + query_points.name + ")")