pyGPGO/surrogates/GaussianProcess.py

Killed 20 out of 40 mutants

Survived

Survived mutation testing. These mutants show holes in your test suite.

Mutant 156

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -4,7 +4,7 @@
 from scipy.optimize import minimize
 
 class GaussianProcess:
-    def __init__(self, covfunc, optimize=False, usegrads=False, mprior=0):
+    def __init__(self, covfunc, optimize=False, usegrads=True, mprior=0):
         """
         Gaussian Process regressor class. Based on Rasmussen & Williams [1]_ algorithm 2.1.
 

Mutant 157

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -4,7 +4,7 @@
 from scipy.optimize import minimize
 
 class GaussianProcess:
-    def __init__(self, covfunc, optimize=False, usegrads=False, mprior=0):
+    def __init__(self, covfunc, optimize=False, usegrads=False, mprior=1):
         """
         Gaussian Process regressor class. Based on Rasmussen & Williams [1]_ algorithm 2.1.
 

Mutant 159

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -35,7 +35,7 @@
         International journal of neural systems (Vol. 14). http://doi.org/10.1142/S0129065704001899
         """
         self.covfunc = covfunc
-        self.optimize = optimize
+        self.optimize = None
         self.usegrads = usegrads
         self.mprior = mprior
 

Mutant 160

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -36,7 +36,7 @@
         """
         self.covfunc = covfunc
         self.optimize = optimize
-        self.usegrads = usegrads
+        self.usegrads = None
         self.mprior = mprior
 
     def getcovparams(self):

Mutant 164

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -67,7 +67,7 @@
         """
         self.X = X
         self.y = y
-        self.nsamples = self.X.shape[0]
+        self.nsamples = self.X.shape[1]
         if self.optimize:
             grads = None
             if self.usegrads:

Mutant 168

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -76,7 +76,7 @@
 
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
-        self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
+        self.alpha = solve(self.L.T, solve(self.L, y + self.mprior))
         self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
             2 * np.pi)
 

Mutant 170

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = +.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 171

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -1.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 172

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 / np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 173

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 * np.dot(self.y, self.alpha) + np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 174

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) + self.nsamples / 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 175

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples * 2 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 176

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 3 * np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 177

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,7 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
+        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 / np.log(
             2 * np.pi)
 
     def param_grad(self, k_param):

Mutant 178

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -78,7 +78,7 @@
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
         self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
-            2 * np.pi)
+            3 * np.pi)
 
     def param_grad(self, k_param):
         """

Mutant 179

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -78,7 +78,7 @@
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
         self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
-            2 * np.pi)
+            2 / np.pi)
 
     def param_grad(self, k_param):
         """

Mutant 180

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -77,8 +77,7 @@
         self.K = self.covfunc.K(self.X, self.X)
         self.L = cholesky(self.K).T
         self.alpha = solve(self.L.T, solve(self.L, y - self.mprior))
-        self.logp = -.5 * np.dot(self.y, self.alpha) - np.sum(np.log(np.diag(self.L))) - self.nsamples / 2 * np.log(
-            2 * np.pi)
+        self.logp = None
 
     def param_grad(self, k_param):
         """

Mutant 181

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -163,7 +163,7 @@
             k_param[k] = v
         return - self.param_grad(k_param)
 
-    def optHyp(self, param_key, param_bounds, grads=None, n_trials=5):
+    def optHyp(self, param_key, param_bounds, grads=None, n_trials=6):
         """
         Optimizes the negative marginal log-likelihood for given hyperparameters and bounds.
         This is an empirical Bayes approach (or Type II maximum-likelihood).

Mutant 182

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -196,7 +196,7 @@
             k_param[k] = x
         self.covfunc = self.covfunc.__class__(**k_param)
 
-    def predict(self, Xstar, return_std=False):
+    def predict(self, Xstar, return_std=True):
         """
         Returns mean and covariances for the posterior Gaussian Process.
 

Mutant 188

--- pyGPGO/surrogates/GaussianProcess.py
+++ pyGPGO/surrogates/GaussianProcess.py
@@ -219,7 +219,7 @@
         kstar = self.covfunc.K(self.X, Xstar).T
         fmean = self.mprior + np.dot(kstar, self.alpha)
         v = solve(self.L, kstar.T)
-        fcov = self.covfunc.K(Xstar, Xstar) - np.dot(v.T, v)
+        fcov = self.covfunc.K(Xstar, Xstar) + np.dot(v.T, v)
         if return_std:
             fcov = np.diag(fcov)
         return fmean, fcov