def _predict_variances(self, x):
# Initialization
n_eval, n_features_x = x.shape
x = (x - self.X_mean) / self.X_std
# Get pairwise componentwise L1-distances to the input training set
dx = manhattan_distances(x, Y=self.X_norma.copy(), sum_over_features=
False)
d = self._componentwise_distance(dx)
# Compute the correlation function
r = self.options['corr'](self.optimal_theta, d).reshape(n_eval,self.nt)
C = self.optimal_par['C']
rt = linalg.solve_triangular(self.optimal_par['C'], r.T, lower=True)
u = linalg.solve_triangular(self.optimal_par['G'].T,np.dot(self.optimal_par['Ft'].T, rt) -
self.options['poly'](x).T)
MSE = self.optimal_par['sigma2']*(1.-(rt ** 2.).sum(axis=0)+(u ** 2.).sum(axis=0))
# Mean Squared Error might be slightly negative depending on
# machine precision: force to zero!
MSE[MSE < 0.] = 0.
return MSE
评论列表
文章目录