From f3b0c93e1b0d7c3a4a80cd5d2f524aacaf52d362 Mon Sep 17 00:00:00 2001 From: HonjoYuichi Date: Thu, 25 Jun 2026 22:04:51 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=A4=E3=81=A8?= =?UTF-8?q?=E6=9C=80=E5=B0=8F=E5=80=A4=E3=82=92=E5=85=A5=E3=82=8C=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EMFieldML/Visualize/Prediction.py | 17 ++++++++++++++++- EMFieldML/Visualize/Visualize.py | 13 +++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/EMFieldML/Visualize/Prediction.py b/EMFieldML/Visualize/Prediction.py index 7dd4002..70e3ca1 100644 --- a/EMFieldML/Visualize/Prediction.py +++ b/EMFieldML/Visualize/Prediction.py @@ -271,7 +271,22 @@ def mu_star_efficiency( config.prepocessing_value_efficiency ) var_star = (k_star_star - k_star.T @ K_inv @ k_star) ** (1 / 2) - return mu_star, var_star + + pred_actual = float(np.asarray(mu_star).flatten()[0]) + sigma_actual = float(np.asarray(var_star).flatten()[0]) + + low_actual = pred_actual - sigma_actual + high_actual = pred_actual + sigma_actual + + low_actual = np.maximum(0.0, low_actual) + high_actual = np.minimum(1.0, high_actual) + + if mu_star[0][0] < 0.0: + mu_star[0][0] = 0.0 + elif mu_star[0][0] > 1.0: + mu_star[0][0] = 1.0 + + return mu_star, low_actual, high_actual def vector( diff --git a/EMFieldML/Visualize/Visualize.py b/EMFieldML/Visualize/Visualize.py index 30cb4be..b57cc5b 100644 --- a/EMFieldML/Visualize/Visualize.py +++ b/EMFieldML/Visualize/Visualize.py @@ -106,9 +106,9 @@ def render_controls(self) -> dict[str, bool]: # Display efficiency psim.TextUnformatted( - f"Efficiency : {self.visualizer.efficiency[0][0]*config.convert_efficiency:.3f} ± " - f"{abs(self.visualizer.var_efficiency[0][0])*config.convert_efficiency:.3f} %", + f"Efficiency : {self.visualizer.efficiency[0][0]*config.convert_efficiency:.3f} % " ) + psim.TextUnformatted(f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%] (95% confidence)") psim.Separator() # Point size control @@ -295,7 +295,8 @@ def _init_ml_params(self): self.values = None self.db_values = None self.efficiency = None - self.var_efficiency = None + self.lower_bound_efficiency = None + self.upper_bound_efficiency = None self.magnetic_vector = None # Training data and models @@ -1161,7 +1162,7 @@ def _run_initial_predictions(self): )[0] # Predict efficiency - self.efficiency, self.var_efficiency = Prediction.mu_star_efficiency( + self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, self.K_inv_Y_train_efficiency, @@ -1430,7 +1431,7 @@ def update_values_for_move(self): ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.var_efficiency = Prediction.mu_star_efficiency( + self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, self.K_inv_Y_train_efficiency, @@ -1559,7 +1560,7 @@ def update_values_for_shape( self.mean_constant_mag, ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.var_efficiency = Prediction.mu_star_efficiency( + self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, self.K_inv_Y_train_efficiency, From 569bf28ed9ec6b7d6008fdfc1ae1770327995cc4 Mon Sep 17 00:00:00 2001 From: HonjoYuichi Date: Fri, 26 Jun 2026 23:05:21 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E5=BE=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EMFieldML/Visualize/Visualize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EMFieldML/Visualize/Visualize.py b/EMFieldML/Visualize/Visualize.py index b57cc5b..2e4455b 100644 --- a/EMFieldML/Visualize/Visualize.py +++ b/EMFieldML/Visualize/Visualize.py @@ -108,7 +108,7 @@ def render_controls(self) -> dict[str, bool]: psim.TextUnformatted( f"Efficiency : {self.visualizer.efficiency[0][0]*config.convert_efficiency:.3f} % " ) - psim.TextUnformatted(f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%] (95% confidence)") + psim.TextUnformatted(f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%]") psim.Separator() # Point size control From 23d3d6eedff9905312cb07c5c09d48d5397c4df6 Mon Sep 17 00:00:00 2001 From: HonjoYuichi Date: Sun, 28 Jun 2026 15:31:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EMFieldML/Visualize/Prediction.py | 10 +++---- EMFieldML/Visualize/Visualize.py | 50 ++++++++++++++++++------------- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/EMFieldML/Visualize/Prediction.py b/EMFieldML/Visualize/Prediction.py index 70e3ca1..5f5971c 100644 --- a/EMFieldML/Visualize/Prediction.py +++ b/EMFieldML/Visualize/Prediction.py @@ -274,18 +274,18 @@ def mu_star_efficiency( pred_actual = float(np.asarray(mu_star).flatten()[0]) sigma_actual = float(np.asarray(var_star).flatten()[0]) - - low_actual = pred_actual - sigma_actual + + low_actual = pred_actual - sigma_actual high_actual = pred_actual + sigma_actual - - low_actual = np.maximum(0.0, low_actual) + + low_actual = np.maximum(0.0, low_actual) high_actual = np.minimum(1.0, high_actual) if mu_star[0][0] < 0.0: mu_star[0][0] = 0.0 elif mu_star[0][0] > 1.0: mu_star[0][0] = 1.0 - + return mu_star, low_actual, high_actual diff --git a/EMFieldML/Visualize/Visualize.py b/EMFieldML/Visualize/Visualize.py index 2e4455b..4ac8d0e 100644 --- a/EMFieldML/Visualize/Visualize.py +++ b/EMFieldML/Visualize/Visualize.py @@ -108,7 +108,9 @@ def render_controls(self) -> dict[str, bool]: psim.TextUnformatted( f"Efficiency : {self.visualizer.efficiency[0][0]*config.convert_efficiency:.3f} % " ) - psim.TextUnformatted(f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%]") + psim.TextUnformatted( + f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%]" + ) psim.Separator() # Point size control @@ -1162,7 +1164,11 @@ def _run_initial_predictions(self): )[0] # Predict efficiency - self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( + ( + self.efficiency, + self.lower_bound_efficiency, + self.upper_bound_efficiency, + ) = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, self.K_inv_Y_train_efficiency, @@ -1431,15 +1437,17 @@ def update_values_for_move(self): ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( - self.X_train_efficiency, - self.X_test, - self.K_inv_Y_train_efficiency, - self.lengthscale_efficiency, - self.scale_efficiency, - self.K_inv_efficiency, - self.mean_constant_efficiency, - self.noise_efficiency, + self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = ( + Prediction.mu_star_efficiency( + self.X_train_efficiency, + self.X_test, + self.K_inv_Y_train_efficiency, + self.lengthscale_efficiency, + self.scale_efficiency, + self.K_inv_efficiency, + self.mean_constant_efficiency, + self.noise_efficiency, + ) ) # Mark vector cache as needing update @@ -1560,15 +1568,17 @@ def update_values_for_shape( self.mean_constant_mag, ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = Prediction.mu_star_efficiency( - self.X_train_efficiency, - self.X_test, - self.K_inv_Y_train_efficiency, - self.lengthscale_efficiency, - self.scale_efficiency, - self.K_inv_efficiency, - self.mean_constant_efficiency, - self.noise_efficiency, + self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = ( + Prediction.mu_star_efficiency( + self.X_train_efficiency, + self.X_test, + self.K_inv_Y_train_efficiency, + self.lengthscale_efficiency, + self.scale_efficiency, + self.K_inv_efficiency, + self.mean_constant_efficiency, + self.noise_efficiency, + ) ) # Mark vector cache as needing update From 085eacdaefd9c5b5fe5510209f0c825c3ca5ead1 Mon Sep 17 00:00:00 2001 From: HonjoYuichi Date: Thu, 2 Jul 2026 13:41:13 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E5=8A=B9=E7=8E=87=E3=81=AE=E4=BA=88?= =?UTF-8?q?=E6=B8=AC=E3=82=92=E8=BC=89=E3=81=9B=E3=81=AA=E3=81=84=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EMFieldML/Visualize/Prediction.py | 12 +----------- EMFieldML/Visualize/Visualize.py | 13 +++---------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/EMFieldML/Visualize/Prediction.py b/EMFieldML/Visualize/Prediction.py index 5f5971c..88720a4 100644 --- a/EMFieldML/Visualize/Prediction.py +++ b/EMFieldML/Visualize/Prediction.py @@ -270,23 +270,13 @@ def mu_star_efficiency( mu_star = calculate_mu_star(X_test, k_star, K_inv_Y_train, mean_constant) ** ( config.prepocessing_value_efficiency ) - var_star = (k_star_star - k_star.T @ K_inv @ k_star) ** (1 / 2) - - pred_actual = float(np.asarray(mu_star).flatten()[0]) - sigma_actual = float(np.asarray(var_star).flatten()[0]) - - low_actual = pred_actual - sigma_actual - high_actual = pred_actual + sigma_actual - - low_actual = np.maximum(0.0, low_actual) - high_actual = np.minimum(1.0, high_actual) if mu_star[0][0] < 0.0: mu_star[0][0] = 0.0 elif mu_star[0][0] > 1.0: mu_star[0][0] = 1.0 - return mu_star, low_actual, high_actual + return mu_star def vector( diff --git a/EMFieldML/Visualize/Visualize.py b/EMFieldML/Visualize/Visualize.py index 4ac8d0e..064d3ed 100644 --- a/EMFieldML/Visualize/Visualize.py +++ b/EMFieldML/Visualize/Visualize.py @@ -108,9 +108,6 @@ def render_controls(self) -> dict[str, bool]: psim.TextUnformatted( f"Efficiency : {self.visualizer.efficiency[0][0]*config.convert_efficiency:.3f} % " ) - psim.TextUnformatted( - f"Range: [{abs(self.visualizer.lower_bound_efficiency)*config.convert_efficiency:.1f}% ~ {abs(self.visualizer.upper_bound_efficiency)*config.convert_efficiency:.1f}%]" - ) psim.Separator() # Point size control @@ -297,8 +294,6 @@ def _init_ml_params(self): self.values = None self.db_values = None self.efficiency = None - self.lower_bound_efficiency = None - self.upper_bound_efficiency = None self.magnetic_vector = None # Training data and models @@ -1165,9 +1160,7 @@ def _run_initial_predictions(self): # Predict efficiency ( - self.efficiency, - self.lower_bound_efficiency, - self.upper_bound_efficiency, + self.efficiency ) = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, @@ -1437,7 +1430,7 @@ def update_values_for_move(self): ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = ( + self.efficiency = ( Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, @@ -1568,7 +1561,7 @@ def update_values_for_shape( self.mean_constant_mag, ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency, self.lower_bound_efficiency, self.upper_bound_efficiency = ( + self.efficiency = ( Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, From e9aa9ec31f5f9da6a584dd5198a127e1911745c4 Mon Sep 17 00:00:00 2001 From: HonjoYuichi Date: Thu, 2 Jul 2026 16:44:37 +0900 Subject: [PATCH 5/5] make format --- EMFieldML/Visualize/Prediction.py | 3 --- EMFieldML/Visualize/Visualize.py | 44 +++++++++++++------------------ 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/EMFieldML/Visualize/Prediction.py b/EMFieldML/Visualize/Prediction.py index 88720a4..34e3e95 100644 --- a/EMFieldML/Visualize/Prediction.py +++ b/EMFieldML/Visualize/Prediction.py @@ -264,9 +264,6 @@ def mu_star_efficiency( ): """Calculate mu_star for efficiency prediction.""" k_star = rbf_kernel(X_train, X_test, lengthscale, scale) - k_star_star = rbf_kernel(X_test, X_test, lengthscale, scale) + noise * np.eye( - len(X_test) - ) mu_star = calculate_mu_star(X_test, k_star, K_inv_Y_train, mean_constant) ** ( config.prepocessing_value_efficiency ) diff --git a/EMFieldML/Visualize/Visualize.py b/EMFieldML/Visualize/Visualize.py index 064d3ed..0abb3f3 100644 --- a/EMFieldML/Visualize/Visualize.py +++ b/EMFieldML/Visualize/Visualize.py @@ -1159,9 +1159,7 @@ def _run_initial_predictions(self): )[0] # Predict efficiency - ( - self.efficiency - ) = Prediction.mu_star_efficiency( + (self.efficiency) = Prediction.mu_star_efficiency( self.X_train_efficiency, self.X_test, self.K_inv_Y_train_efficiency, @@ -1430,17 +1428,15 @@ def update_values_for_move(self): ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency = ( - Prediction.mu_star_efficiency( - self.X_train_efficiency, - self.X_test, - self.K_inv_Y_train_efficiency, - self.lengthscale_efficiency, - self.scale_efficiency, - self.K_inv_efficiency, - self.mean_constant_efficiency, - self.noise_efficiency, - ) + self.efficiency = Prediction.mu_star_efficiency( + self.X_train_efficiency, + self.X_test, + self.K_inv_Y_train_efficiency, + self.lengthscale_efficiency, + self.scale_efficiency, + self.K_inv_efficiency, + self.mean_constant_efficiency, + self.noise_efficiency, ) # Mark vector cache as needing update @@ -1561,17 +1557,15 @@ def update_values_for_shape( self.mean_constant_mag, ).reshape(-1) self.dBvalues = Visualize.convert_to_db(self.values) - self.efficiency = ( - Prediction.mu_star_efficiency( - self.X_train_efficiency, - self.X_test, - self.K_inv_Y_train_efficiency, - self.lengthscale_efficiency, - self.scale_efficiency, - self.K_inv_efficiency, - self.mean_constant_efficiency, - self.noise_efficiency, - ) + self.efficiency = Prediction.mu_star_efficiency( + self.X_train_efficiency, + self.X_test, + self.K_inv_Y_train_efficiency, + self.lengthscale_efficiency, + self.scale_efficiency, + self.K_inv_efficiency, + self.mean_constant_efficiency, + self.noise_efficiency, ) # Mark vector cache as needing update