summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Friesel <daniel.friesel@uos.de>2022-06-03 13:52:42 +0200
committerDaniel Friesel <daniel.friesel@uos.de>2022-06-03 13:52:42 +0200
commit205f8c9edc49218555eae58da3c7532f081e7754 (patch)
tree07d45b295b6eda88b99a00f573aeeb4f18ad9470 /lib
parent5ba5bc244d5e9d967279fa9da4900d1063447da6 (diff)
support ignoring 'irrelevant' parameters in FOL function
Diffstat (limited to 'lib')
-rw-r--r--lib/functions.py3
-rw-r--r--lib/parameters.py10
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: