Esempio n. 1
0
    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
Esempio n. 2
0
 def wrap_kernel_with_rounding(
         model: GPRegression,
         hyperparameters: List[Hyperparameter]) -> GPRegression:
     model.kern = RoundingKernelWrapper(model.kern, hyperparameters)
     return model