diff --git a/.coverage b/.coverage deleted file mode 100644 index bf1a819edb9c1da044cf1d4a9886dcae9c8a0d44..0000000000000000000000000000000000000000 Binary files a/.coverage and /dev/null differ diff --git a/.coverage.DESKTOP-ATMEKSV.11452.XLITHjZx b/.coverage.DESKTOP-ATMEKSV.11452.XLITHjZx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.12176.XLfAodNx b/.coverage.DESKTOP-ATMEKSV.12176.XLfAodNx new file mode 100644 index 0000000000000000000000000000000000000000..81e53f831236a6e47a886ccb6403982ccf33b461 Binary files /dev/null and b/.coverage.DESKTOP-ATMEKSV.12176.XLfAodNx differ diff --git a/.coverage.DESKTOP-ATMEKSV.13588.XZYsjQJx b/.coverage.DESKTOP-ATMEKSV.13588.XZYsjQJx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.16272.XbRVHzCx b/.coverage.DESKTOP-ATMEKSV.16272.XbRVHzCx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.17272.XFfrcjIx b/.coverage.DESKTOP-ATMEKSV.17272.XFfrcjIx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.19516.XYmGXWjx b/.coverage.DESKTOP-ATMEKSV.19516.XYmGXWjx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.22008.XRkuWJDx b/.coverage.DESKTOP-ATMEKSV.22008.XRkuWJDx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.26464.XmAwipdx b/.coverage.DESKTOP-ATMEKSV.26464.XmAwipdx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.26608.XOhHWLjx b/.coverage.DESKTOP-ATMEKSV.26608.XOhHWLjx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.28232.XbgqjYTx b/.coverage.DESKTOP-ATMEKSV.28232.XbgqjYTx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.29620.XFvzCgcx b/.coverage.DESKTOP-ATMEKSV.29620.XFvzCgcx deleted file mode 100644 index e1f7e6f75f5aa9a7a33884193b67b7cc22082200..0000000000000000000000000000000000000000 Binary files a/.coverage.DESKTOP-ATMEKSV.29620.XFvzCgcx and /dev/null differ diff --git a/.coverage.DESKTOP-ATMEKSV.3204.XyITjfkx b/.coverage.DESKTOP-ATMEKSV.3204.XyITjfkx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.32192.XvDmKXMx b/.coverage.DESKTOP-ATMEKSV.32192.XvDmKXMx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.5212.XQFhYiNx b/.coverage.DESKTOP-ATMEKSV.5212.XQFhYiNx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.8636.XwlJQXIx b/.coverage.DESKTOP-ATMEKSV.8636.XwlJQXIx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.8780.XTtoPmMx b/.coverage.DESKTOP-ATMEKSV.8780.XTtoPmMx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/.coverage.DESKTOP-ATMEKSV.8936.XNLbUDNx b/.coverage.DESKTOP-ATMEKSV.8936.XNLbUDNx new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/CHANGELOG.md b/CHANGELOG.md index d1669ae56def290bc636a0c6b39c71e9b1be0d40..daded68320a07869efaa6c5b2d643b97eaa110e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ Examples * Moved functions for sequential training from `Engine` to `SeqDesign` * Moved `hellinger_distance`, `logpdf`, `subdomain` into `surrogate_models/seq_design` * Early stop in `BayesInf` for `BayesModelComp` +* Allow singular matrices in exploitation with `BayesActDesign` Bug fixes * Import of `ExpDesign` allowed diff --git a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py index dc66e1cf5322928c6f7cc16392b96f302bd6d04a..6374cdc01db0535bd255c88e8b6b8065eaba9112 100644 --- a/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py +++ b/src/bayesvalidrox/bayes_inference/bayes_model_comparison.py @@ -484,7 +484,6 @@ class BayesModelComparison: for name in names: fig, ax = plt.subplots() for i, model in enumerate(model_names[1:]): - #print(model, i) plt.plot(list(range(1, self.n_meas+1)), model_weights_dict[name][i], color=Color[i], marker='o', diff --git a/src/bayesvalidrox/post_processing/post_processing.py b/src/bayesvalidrox/post_processing/post_processing.py index 7953716513437060e767962e4e64318ae6cb8415..020695c7668a66f8073c76ea8a5fc43cf7b5f189 100644 --- a/src/bayesvalidrox/post_processing/post_processing.py +++ b/src/bayesvalidrox/post_processing/post_processing.py @@ -321,7 +321,6 @@ class PostProcessing: if len(name_util) == 0: continue - print(seq_dict) # Box plot when Replications have been detected. if any(int(name.split("rep_", 1)[1]) > 1 for name in name_util): @@ -494,8 +493,8 @@ class PostProcessing: seq_values = np.nan_to_num(seq_values) # Plot the error evolution for each output - print(x_idx.shape) - print(seq_values.mean(axis=1).shape) + #print(x_idx.shape) + #print(seq_values.mean(axis=1).shape) plt.semilogy(x_idx, seq_values.mean(axis=1), marker=markers[idx], ls='--', lw=2, color=colors[idx], diff --git a/src/bayesvalidrox/surrogate_models/engine.py b/src/bayesvalidrox/surrogate_models/engine.py index ecc9e9485e53b2174ae5c9cfc8c7ebf1676aa5d0..330ac293884516f2eaa107c11d4e661bccfc6ba3 100644 --- a/src/bayesvalidrox/surrogate_models/engine.py +++ b/src/bayesvalidrox/surrogate_models/engine.py @@ -97,7 +97,6 @@ class Engine: # Read ExpDesign (training and targets) from the provided hdf5 if ExpDesign.hdf5_file is not None: - # TODO: need to run 'generate_ED' as well after this or not? ExpDesign.read_from_file(self.out_names) else: # Check if an old hdf5 file exists: if yes, rename it @@ -599,7 +598,6 @@ class Engine: self.seqRMSEMean[strKey] = seqRMSEMean self.seqRMSEStd[strKey] = seqRMSEStd - # return self.MetaModel # ------------------------------------------------------------------------- def _normpdf(self, y_hat_pce, std_pce, obs_data, total_sigma2s, diff --git a/src/bayesvalidrox/surrogate_models/sequential_design.py b/src/bayesvalidrox/surrogate_models/sequential_design.py index d4004b8b8c60ce4ffa957f4855d462566630f8f5..878ac740214de987f5fea9e1389e01305d2d044b 100644 --- a/src/bayesvalidrox/surrogate_models/sequential_design.py +++ b/src/bayesvalidrox/surrogate_models/sequential_design.py @@ -533,8 +533,6 @@ class SequentialDesign: temp = totalScore.copy() temp[np.isnan(totalScore)] = -np.inf # Since we are maximizing sorted_idxtotalScore = np.argsort(temp)[::-1] - print(sorted_idxtotalScore) - print(n_new_samples) bestIdx = sorted_idxtotalScore[:n_new_samples] if type(bestIdx) is int: bestIdx = [bestIdx] @@ -543,7 +541,6 @@ class SequentialDesign: if explore_method.lower() == 'voronoi': Xnew = np.zeros((n_new_samples, ndim)) for i, idx in enumerate(bestIdx): - print(explore.closestPoints) X_can = explore.closestPoints[idx] # Calculate the maxmin score for the region of interest @@ -708,8 +705,6 @@ class SequentialDesign: y_hat = {key: items[idx] for key, items in y_can.items()} std = {key: items[idx] for key, items in std_can.items()} - # print(y_hat) - # print(std) U_J_d[idx] = self.util_BayesianActiveDesign( y_hat, std, sigma2Dict, var) @@ -830,8 +825,7 @@ class SequentialDesign: logPriorLikelihoods = np.zeros(mc_size) for key in list(y_hat): cov = np.diag(std[key] ** 2) - print(key, y_hat[key], std[key]) - # TODO: added the allow_singular = True here + # Allow for singular matrices rv = stats.multivariate_normal(mean=y_hat[key], cov=cov, allow_singular=True) Y_MC[key] = rv.rvs(size=mc_size) logPriorLikelihoods += rv.logpdf(Y_MC[key]) @@ -1284,7 +1278,6 @@ class SequentialDesign: Phi[idx] = np.linalg.cond(M) else: - # print(var.lower()) raise Exception('The optimality criterion you requested has ' 'not been implemented yet!') @@ -1325,7 +1318,6 @@ class SequentialDesign: for idx, out in enumerate(self.out_names): # (Meta)Model Output - # print(y_hat_pce[out]) nsamples, nout = y_hat_pce[out].shape # Prepare data and remove NaN diff --git a/src/bayesvalidrox/surrogate_models/surrogate_models.py b/src/bayesvalidrox/surrogate_models/surrogate_models.py index b71040b405769617ab33fbb68d97d652c2e1d2d2..e56cfe40f1592b6d2389b9faf2cf160af0da0fad 100644 --- a/src/bayesvalidrox/surrogate_models/surrogate_models.py +++ b/src/bayesvalidrox/surrogate_models/surrogate_models.py @@ -1081,6 +1081,7 @@ class MetaModel: text = f"$\\alpha={clf_poly.alpha_:.1f}$\n$" f"\\L={clf_poly.scores_[-1]:.1f}$" + # TODO: save this figure and close it, do not show plt.text(0.75, 0.5, text, fontsize=18, transform=ax.transAxes) plt.show() print('=' * 80)