diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2022-06-03 13:52:42 +0200 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2022-06-03 13:52:42 +0200 |
commit | 205f8c9edc49218555eae58da3c7532f081e7754 (patch) | |
tree | 07d45b295b6eda88b99a00f573aeeb4f18ad9470 /lib | |
parent | 5ba5bc244d5e9d967279fa9da4900d1063447da6 (diff) |
support ignoring 'irrelevant' parameters in FOL function
Diffstat (limited to 'lib')
-rw-r--r-- | lib/functions.py | 3 | ||||
-rw-r--r-- | lib/parameters.py | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/functions.py b/lib/functions.py index 0b0044b..aa328ef 100644 --- a/lib/functions.py +++ b/lib/functions.py @@ -608,7 +608,7 @@ class FOLFunction(ModelFunction): self._num_args = num_args self.fit_success = False - def fit(self, param_values, data): + def fit(self, param_values, data, ignore_param_indexes=None): categorial_to_scalar = bool( int(os.getenv("DFATOOL_PARAM_CATEGORIAL_TO_SCALAR", "0")) ) @@ -616,6 +616,7 @@ class FOLFunction(ModelFunction): param_values, with_nan=False, categorial_to_scalar=categorial_to_scalar, + ignore_indexes=ignore_param_indexes, ) self.categorial_to_index = categorial_to_index self.ignore_index = ignore_index diff --git a/lib/parameters.py b/lib/parameters.py index ed56bdd..a636b52 100644 --- a/lib/parameters.py +++ b/lib/parameters.py @@ -880,8 +880,16 @@ class ModelAttribute: return ret def build_fol_model(self): + ignore_irrelevant = bool( + int(os.getenv("DFATOOL_DTREE_IGNORE_IRRELEVANT_PARAMS", "1")) + ) + ignore_param_indexes = list() + if ignore_irrelevant: + for i, param in enumerate(self.param_names): + if not self.stats.depends_on_param(param): + ignore_param_indexes.append(i) x = df.FOLFunction(self.median, self.param_names) - x.fit(self.param_values, self.data) + x.fit(self.param_values, self.data, ignore_param_indexes=ignore_param_indexes) if x.fit_success: self.model_function = x else: |