def prediction_error_gp(self, x): XX = x.reshape(self.X_obs.shape) ntest = self.n - self.ntrain ll = 0 gp = GP(X=XX, y=self.SY[:, 0:1], cov_main=self.cov, noise_var=self.noise_var, sort_events=False, sparse_invert=False) pred_cov = gp.covariance(self.Xtest, include_obs=True) logdet = np.linalg.slogdet(pred_cov)[1] pred_prec = np.linalg.inv(pred_cov) for y, yt in zip(self.SY.T, self.Ytest.T): gp.y = y gp.alpha_r = gp.factor(y) pred_means = gp.predict(self.Xtest) rt = yt - pred_means lly = -.5 * np.dot(rt, np.dot(pred_prec, rt)) lly += -.5 * logdet lly += -.5 * ntest * np.log(2 * np.pi) ll += lly return ll
def prediction_error_gp(self, x): XX = x.reshape(self.X_obs.shape) ntest = self.n-self.ntrain ll = 0 gp = GP(X=XX, y=self.SY[:, 0:1], cov_main=self.cov, noise_var=self.noise_var, sort_events=False, sparse_invert=False) pred_cov = gp.covariance(self.Xtest, include_obs=True) logdet = np.linalg.slogdet(pred_cov)[1] pred_prec = np.linalg.inv(pred_cov) for y, yt in zip(self.SY.T, self.Ytest.T): gp.y = y gp.alpha_r = gp.factor(y) pred_means = gp.predict(self.Xtest) rt = yt - pred_means lly = -.5 * np.dot(rt, np.dot(pred_prec, rt)) lly += -.5 * logdet lly += -.5 * ntest * np.log(2*np.pi) ll += lly return ll