diff options
author | Birte Kristina Friesel <birte.friesel@uos.de> | 2024-12-12 18:21:08 +0100 |
---|---|---|
committer | Birte Kristina Friesel <birte.friesel@uos.de> | 2024-12-12 18:21:08 +0100 |
commit | 54cb9c0f47b17c57e30c9b8e2b0feb9f11623a09 (patch) | |
tree | 89270f88fc1247cc8be418d6cd77a3cd975bfd0f /lib/functions.py | |
parent | 50606967e2ae749bf9ab3fa213a7da6e89b0aeed (diff) |
Support lower regression bounds other than -∞
DFATOOL_ULS_MIN_BOUND=0 is especially useful in many cases
Diffstat (limited to 'lib/functions.py')
-rw-r--r-- | lib/functions.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/functions.py b/lib/functions.py index ae8283a..187e6ff 100644 --- a/lib/functions.py +++ b/lib/functions.py @@ -27,6 +27,8 @@ dfatool_rmt_relevance_threshold = float( os.getenv("DFATOOL_RMT_RELEVANCE_THRESHOLD", "0.5") ) +dfatool_uls_min_bound = float(os.getenv("DFATOOL_ULS_MIN_BOUND", -np.inf)) + if dfatool_preproc_relevance_method == "mi": import sklearn.feature_selection @@ -97,7 +99,7 @@ class ParamFunction: num_vars, repr_str=None, ini=None, - bounds=((-np.inf, -np.inf), (np.inf, np.inf)), + bounds=((dfatool_uls_min_bound, dfatool_uls_min_bound), (np.inf, np.inf)), ): """ Create function object suitable for regression analysis. @@ -1927,7 +1929,7 @@ class AnalyticFunction(ModelFunction): upper_bounds.append(np.max(X[param_index])) self.model_args[i] = np.mean(X[param_index]) else: - lower_bounds.append(-np.inf) + lower_bounds.append(dfatool_uls_min_bound) upper_bounds.append(np.inf) error_function = lambda P, X, y: self._function(P, X) - y try: @@ -2144,7 +2146,14 @@ class analytic: lambda model_param: True, 3, repr_str="β₀ + β₁ * roofline(x, β₂)", - bounds=((-np.inf, -np.inf, -np.inf), (np.inf, np.inf, np.inf)), + bounds=( + ( + dfatool_uls_min_bound, + dfatool_uls_min_bound, + dfatool_uls_min_bound, + ), + (np.inf, np.inf, np.inf), + ), ), # "num0_8": ParamFunction( # lambda reg_param, model_param: reg_param[0] |