def fit(self): if self.model: self.noise = self.model.Gaussian_noise.variance[0] return None x_dim = self.x.shape[1] # number of input dimensions, 1 if only time y_dim = self.y.shape[ 1] # number of ouptut dimensions, typically only 1 for log OD kern = buildKernel(x_dim, ARD=self.ARD) m = GPRegression(self.x, self.y, kern) if self.heteroscedastic: kern = addFixedKernel(kern, y_dim, self.error) m = GPRegression(self.x, self.y, kern) m.optimize() self.noise = m.Gaussian_noise.variance[ 0] # should be negligible (<1e-10) for full model if self.heteroscedastic: m.kern = m.kern.parts[ 0] # cannot predict with fixed kernel, so remove it self.model = m
def wrap_kernel_with_rounding( model: GPRegression, hyperparameters: List[Hyperparameter]) -> GPRegression: model.kern = RoundingKernelWrapper(model.kern, hyperparameters) return model