From 2498c979c3053d86705634d0a30a0300fb355f71 Mon Sep 17 00:00:00 2001 From: shukon Date: Sat, 9 May 2020 18:06:55 +0200 Subject: [PATCH] Fix many NaNs in conditional parameter-spaces --- pimp/evaluator/local_parameter_importance.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pimp/evaluator/local_parameter_importance.py b/pimp/evaluator/local_parameter_importance.py index 556a4a7..d39d9ac 100644 --- a/pimp/evaluator/local_parameter_importance.py +++ b/pimp/evaluator/local_parameter_importance.py @@ -246,7 +246,7 @@ def run(self) -> OrderedDict: tmp_perf = performance_dict[param][:inc_at] + performance_dict[param][inc_at + 1:] if delta == 0: delta = 1 # To avoid division by zero - imp_over_mea = (np.mean(tmp_perf) - performance_dict[param][inc_at]) / delta + imp_over_mea = (np.nanmean(tmp_perf) - performance_dict[param][inc_at]) / delta imp_over_med = (np.median(tmp_perf) - performance_dict[param][inc_at]) / delta try: imp_over_max = (np.max(tmp_perf) - performance_dict[param][inc_at]) / delta @@ -273,7 +273,7 @@ def run(self) -> OrderedDict: str(sum_var_per_tree), len(list(pred_per_tree.values())[0][0])) for param in performance_dict.keys(): if self.quantify_importance_via_variance: - evaluated_parameter_importance[param] = np.mean(overall_var_per_tree[param]) + evaluated_parameter_importance[param] = np.nanmean(overall_var_per_tree[param]) else: evaluated_parameter_importance[param] = overall_imp[param][0]