diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index db213c9a..52203b6a 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,13 +2,232 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="d2565aa5-b0c7-4b53-9b23-84bd42c9e5d7" name="Changes" comment="">
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Beeswarm.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Waterfall.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_reverse_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_correlation_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_geometry_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_reverse_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_transformation_plot.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_shap_trend_plot.png" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/build/lib/imputegap/recovery/explainer.py" beforeDir="false" afterPath="$PROJECT_DIR$/build/lib/imputegap/recovery/explainer.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/build/lib/imputegap/runner_datasets.py" beforeDir="false" afterPath="$PROJECT_DIR$/build/lib/imputegap/runner_datasets.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.cdrec.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.iim.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mean_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.min_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mrnn.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.stmvl.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.algorithms.zero_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmarking.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.evaluation.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.explainer.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.imputation.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.manager.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.recovery.optimization.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.tools.algorithm_parameters.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.tools.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.tools.utils.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/autosummary/imputegap.wrapper.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/environment.pickle" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.benchmarking.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.cdrec.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.cdrec.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.evaluation.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.evaluation.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.explainer.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.explainer.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.iim.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.iim.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.imputation.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.imputation.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.manager.doctree" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.manager.doctree" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.mean_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.min_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.mrnn.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.optimization.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.stmvl.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.tools.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.utils.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.wrapper.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/imputegap.zero_impute.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/index.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/doctrees/modules.doctree" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/.buildinfo" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.cdrec.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.iim.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.mean_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.min_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.mrnn.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.stmvl.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.algorithms.zero_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.benchmarking.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.evaluation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.explainer.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.imputation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.manager.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.recovery.optimization.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.tools.algorithm_parameters.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.tools.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.tools.utils.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/autosummary/imputegap.wrapper.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/genindex.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.algorithm_parameters.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.algorithms.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.benchmarking.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.cdrec.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.evaluation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.explainer.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.iim.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.imputation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.manager.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.mean_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.min_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.mrnn.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.optimization.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.stmvl.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.tools.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.utils.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.wrapper.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/imputegap.zero_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/index.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/cdrec.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/iim.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/mean_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/min_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/mrnn.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/stmvl.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/algorithms/zero_impute.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/benchmarking.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/evaluation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/explainer.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/imputation.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/manager.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/recovery/optimization.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/imputegap/tools/utils.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/modules/index.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/objects.inv" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/py-modindex.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/search.html" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/searchindex.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.cdrec.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.iim.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.mean_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.min_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.mrnn.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.stmvl.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.algorithms.zero_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmarking.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.evaluation.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.explainer.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.imputation.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.manager.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.recovery.optimization.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.tools.algorithm_parameters.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.tools.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.tools.utils.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/_autosummary/imputegap.wrapper.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.algorithm_parameters.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.algorithms.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.benchmarking.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.cdrec.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.evaluation.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.explainer.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.iim.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.imputation.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.manager.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.mean_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.min_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.mrnn.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.optimization.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.stmvl.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.tools.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.utils.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.wrapper.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/imputegap.zero_impute.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/index.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/sources/modules.rst.txt" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/_sphinx_javascript_frameworks_compat.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/basic.css" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/badge_only.css" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/Roboto-Slab-Bold.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/Roboto-Slab-Bold.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/Roboto-Slab-Regular.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/Roboto-Slab-Regular.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/fontawesome-webfont.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/fontawesome-webfont.svg" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/fontawesome-webfont.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/fontawesome-webfont.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/fontawesome-webfont.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-bold-italic.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-bold-italic.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-bold.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-bold.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-normal-italic.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-normal-italic.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-normal.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/fonts/lato-normal.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/css/theme.css" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/doctools.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/documentation_options.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/file.png" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bold.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bold.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bold.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bold.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bolditalic.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bolditalic.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bolditalic.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-bolditalic.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-italic.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-italic.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-italic.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-italic.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-regular.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-regular.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-regular.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/Lato/lato-regular.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-bold.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-bold.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-regular.eot" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-regular.woff" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/jquery.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/js/badge_only.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/js/theme.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/js/versions.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/language_data.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/minus.png" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/plus.png" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/pygments.css" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/searchtools.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/build/html/static/sphinx_highlight.js" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/source/conf.py" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/source/conf.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/source/imputegap.benchmarking.rst" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/source/imputegap.benchmark.rst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/docs/generation/source/index.rst" beforeDir="false" afterPath="$PROJECT_DIR$/docs/generation/source/index.rst" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/assets/shap/chlorine_cdrec_results.txt" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/assets/shap/eeg-alcohol_cdrec_results.txt" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/assets/shap/chlorine_cdrec_shap_aggregate_plot.jpg" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/assets/shap/chlorine_cdrec_shap_plot.png" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/recovery/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/recovery/README.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/recovery/benchmark.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/recovery/benchmark.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/recovery/explainer.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/recovery/explainer.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/imputegap/recovery/manager.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/recovery/manager.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/imputegap/runner_contamination.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_contamination.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/runner_datasets.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_datasets.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/runner_explainer.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_explainer.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/imputegap/runner_imputation.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_imputation.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/params/optimal_parameters_e_eeg-alcohol_cdrec.toml" beforeDir="false" afterPath="$PROJECT_DIR$/params/optimal_parameters_e_eeg-alcohol_cdrec.toml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/params/optimal_parameters_e_eeg-alcohol_stmvl.toml" beforeDir="false" afterPath="$PROJECT_DIR$/params/optimal_parameters_e_eeg-alcohol_stmvl.toml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/tests/report.log" beforeDir="false" afterPath="$PROJECT_DIR$/tests/report.log" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/runner_loading.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_loading.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/imputegap/runner_optimization.py" beforeDir="false" afterPath="$PROJECT_DIR$/imputegap/runner_optimization.py" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -47,17 +266,17 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "RunOnceActivity.OpenProjectViewOnStart": "true",
-    "RunOnceActivity.ShowReadmeOnStart": "true",
-    "WebServerToolWindowFactoryState": "false",
-    "last_opened_file_path": "C:/Users/nquen/switchdrive/MST_MasterThesis/imputegap/tests",
-    "nodejs_package_manager_path": "npm",
-    "settings.editor.selected.configurable": "preferences.editor.code.editing",
-    "vue.rearranger.settings.migration": "true"
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
+    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
+    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
+    &quot;last_opened_file_path&quot;: &quot;C:/Users/nquen/switchdrive/MST_MasterThesis/imputegap/tests&quot;,
+    &quot;nodejs_package_manager_path&quot;: &quot;npm&quot;,
+    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.editor.code.editing&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
   }
-}]]></component>
+}</component>
   <component name="PyCoverageOptionsProvider">
     <option name="myUseBundledCoveragePy" value="true" />
   </component>
@@ -77,8 +296,8 @@
       <recent name="C:\Users\nquen\switchdrive\MST_MasterThesis\imputegap\imputegap\recovery" />
     </key>
   </component>
-  <component name="RunManager" selected="Python.runner_imputation">
-    <configuration name="runner_benchmark" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
+  <component name="RunManager" selected="Python.runner_explainer">
+    <configuration name="runner_contamination" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
       <module name="imputegap" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -91,7 +310,7 @@
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_benchmark.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_contamination.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -100,7 +319,7 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="runner_contamination" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
+    <configuration name="runner_explainer" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
       <module name="imputegap" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
@@ -113,7 +332,7 @@
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_contamination.py" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_explainer.py" />
       <option name="PARAMETERS" value="" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
@@ -144,50 +363,64 @@
       <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="Python tests in test_contamination_gaussian.py" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
+    <configuration name="runner_loading" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
       <module name="imputegap" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
+      <envs>
+        <env name="PYTHONUNBUFFERED" value="1" />
+      </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/imputegap" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-      <option name="_new_additionalArguments" value="&quot;&quot;" />
-      <option name="_new_target" value="&quot;$PROJECT_DIR$/tests/test_contamination_gaussian.py&quot;" />
-      <option name="_new_targetType" value="&quot;PATH&quot;" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_loading.py" />
+      <option name="PARAMETERS" value="" />
+      <option name="SHOW_COMMAND_LINE" value="false" />
+      <option name="EMULATE_TERMINAL" value="false" />
+      <option name="MODULE_MODE" value="false" />
+      <option name="REDIRECT_INPUT" value="false" />
+      <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
-    <configuration name="Python tests in tests" type="tests" factoryName="Autodetect" temporary="true" nameIsGenerated="true">
+    <configuration name="runner_optimization" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
       <module name="imputegap" />
       <option name="INTERPRETER_OPTIONS" value="" />
       <option name="PARENT_ENVS" value="true" />
+      <envs>
+        <env name="PYTHONUNBUFFERED" value="1" />
+      </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/tests" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/imputegap" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
-      <option name="_new_additionalArguments" value="&quot;&quot;" />
-      <option name="_new_target" value="&quot;$PROJECT_DIR$/tests&quot;" />
-      <option name="_new_targetType" value="&quot;PATH&quot;" />
+      <option name="SCRIPT_NAME" value="$PROJECT_DIR$/imputegap/runner_optimization.py" />
+      <option name="PARAMETERS" value="" />
+      <option name="SHOW_COMMAND_LINE" value="false" />
+      <option name="EMULATE_TERMINAL" value="false" />
+      <option name="MODULE_MODE" value="false" />
+      <option name="REDIRECT_INPUT" value="false" />
+      <option name="INPUT_FILE" value="" />
       <method v="2" />
     </configuration>
     <list>
-      <item itemvalue="Python.runner_benchmark" />
+      <item itemvalue="Python.runner_explainer" />
+      <item itemvalue="Python.runner_loading" />
+      <item itemvalue="Python.runner_optimization" />
       <item itemvalue="Python.runner_imputation" />
       <item itemvalue="Python.runner_contamination" />
-      <item itemvalue="Python tests.Python tests in test_contamination_gaussian.py" />
-      <item itemvalue="Python tests.Python tests in tests" />
     </list>
     <recent_temporary>
       <list>
+        <item itemvalue="Python.runner_explainer" />
+        <item itemvalue="Python.runner_optimization" />
         <item itemvalue="Python.runner_imputation" />
+        <item itemvalue="Python.runner_loading" />
         <item itemvalue="Python.runner_contamination" />
-        <item itemvalue="Python tests.Python tests in tests" />
-        <item itemvalue="Python tests.Python tests in test_contamination_gaussian.py" />
-        <item itemvalue="Python.runner_benchmark" />
       </list>
     </recent_temporary>
   </component>
@@ -300,7 +533,8 @@
       <workItem from="1734436818269" duration="7862000" />
       <workItem from="1736163367809" duration="17794000" />
       <workItem from="1736254761790" duration="6021000" />
-      <workItem from="1736331141815" duration="21355000" />
+      <workItem from="1736331141815" duration="21406000" />
+      <workItem from="1736423251925" duration="6240000" />
     </task>
     <servers />
   </component>
@@ -330,22 +564,22 @@
     <SUITE FILE_PATH="coverage/imputegap$runner.coverage" NAME="runner Coverage Results" MODIFIED="1727264924849" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$pytest_for_tests_test_opti_pso_cdrec.coverage" NAME="pytest for tests.test_opti_pso_cdrec Coverage Results" MODIFIED="1736168069290" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
     <SUITE FILE_PATH="coverage/imputegap$pytest_for_tests_test_explainer_TestExplainer_test_explainer_shap.coverage" NAME="pytest for tests.test_explainer.TestExplainer.test_explainer_shap Coverage Results" MODIFIED="1736332535685" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
-    <SUITE FILE_PATH="coverage/imputegap$runner_contamination.coverage" NAME="runner_contamination Coverage Results" MODIFIED="1736354080299" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
+    <SUITE FILE_PATH="coverage/imputegap$runner_contamination.coverage" NAME="runner_contamination Coverage Results" MODIFIED="1736427247838" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$runner_datasets.coverage" NAME="runner_datasets Coverage Results" MODIFIED="1731675942864" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$pytest_for_tests_test_benchmarking_TestBenchmarking_test_benchmarking_matrix.coverage" NAME="pytest for tests.test_benchmarking.TestBenchmarking.test_benchmarking_matrix Coverage Results" MODIFIED="1732283056560" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
     <SUITE FILE_PATH="coverage/imputegap$demo.coverage" NAME="demo Coverage Results" MODIFIED="1727770278863" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
-    <SUITE FILE_PATH="coverage/imputegap$runner_imputation.coverage" NAME="runner_imputation Coverage Results" MODIFIED="1736336897430" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
+    <SUITE FILE_PATH="coverage/imputegap$runner_imputation.coverage" NAME="runner_imputation Coverage Results" MODIFIED="1736428121887" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$runner_benchmark__1_.coverage" NAME="runner_benchmark (1) Coverage Results" MODIFIED="1736181076541" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$example.coverage" NAME="example Coverage Results" MODIFIED="1728910575503" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$convert_mean.coverage" NAME="convert_mean Coverage Results" MODIFIED="1731068368917" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
-    <SUITE FILE_PATH="coverage/imputegap$runner_loading.coverage" NAME="runner_loading Coverage Results" MODIFIED="1732122885556" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
-    <SUITE FILE_PATH="coverage/imputegap$runner_explainer.coverage" NAME="runner_explainer Coverage Results" MODIFIED="1736169598033" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
+    <SUITE FILE_PATH="coverage/imputegap$runner_loading.coverage" NAME="runner_loading Coverage Results" MODIFIED="1736427971401" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$runner_benchmark.coverage" NAME="runner_benchmark Coverage Results" MODIFIED="1736350398897" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
+    <SUITE FILE_PATH="coverage/imputegap$runner_explainer.coverage" NAME="runner_explainer Coverage Results" MODIFIED="1736429636756" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$test.coverage" NAME="test Coverage Results" MODIFIED="1730904269695" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$test__1_.coverage" NAME="test (1) Coverage Results" MODIFIED="1727099954120" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$runner_evaluation.coverage" NAME="runner_benchmarking Coverage Results" MODIFIED="1730131561217" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
-    <SUITE FILE_PATH="coverage/imputegap$.coverage" NAME=" Coverage Results" MODIFIED="1736353085105" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
-    <SUITE FILE_PATH="coverage/imputegap$runner_optimization.coverage" NAME="runner_optimization Coverage Results" MODIFIED="1736166351403" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
+    <SUITE FILE_PATH="coverage/imputegap$.coverage" NAME=" Coverage Results" MODIFIED="1736424689714" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
+    <SUITE FILE_PATH="coverage/imputegap$runner_optimization.coverage" NAME="runner_optimization Coverage Results" MODIFIED="1736428200691" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$benchmark.coverage" NAME="benchmark Coverage Results" MODIFIED="1736174068706" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap/recovery" />
     <SUITE FILE_PATH="coverage/imputegap$runner_load.coverage" NAME="runner_load Coverage Results" MODIFIED="1728574239749" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/imputegap" />
     <SUITE FILE_PATH="coverage/imputegap$pytest_for_tests_test_benchmarking_TestBenchmarking_test_benchmarking.coverage" NAME="pytest for tests.test_benchmarking.TestBenchmarking.test_benchmarking Coverage Results" MODIFIED="1736333533527" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
diff --git a/README.md b/README.md
index da171f2a..6dda103f 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ ImputeGAP is a comprehensive framework designed for time series imputation algor
 
 The following prerequisites are required to use ImputeGAP:
 
-- Python version 3.12
+- Python version 3.10 / 3.11 / 3.12 (recommended)
 - Unix-compatible environment for execution
 
 To create and set up an environment with Python 3.12, please refer to the [installation guide](https://github.com/eXascaleInfolab/ImputeGAP/tree/main/procedure/installation).
@@ -89,9 +89,8 @@ ts_1.load_timeseries(utils.search_path("eeg-alcohol"), max_series=5, max_values=
 ts_1.normalize(normalizer="z_score")
 
 # [OPTIONAL] you can plot your raw data / print the information
-ts_1.plot(input_data=ts_1.data, title="raw data", max_series=10, max_values=100, save_path="./imputegap/assets")
+ts_1.plot(input_data=ts_1.data, max_series=10, max_values=100, save_path="./imputegap/assets")
 ts_1.print(limit_series=10)
-
 ```
 
 ---
@@ -115,12 +114,12 @@ ts_1 = TimeSeries()
 ts_1.load_timeseries(utils.search_path("eeg-alcohol"))
 ts_1.normalize(normalizer="min_max")
 
-# 3. contamination of the data with MCAR scenario
-infected_data = ts_1.Contamination.mcar(ts_1.data, series_rate=0.4, missing_rate=0.2, use_seed=True)
+# 3. contamination of the data with MCAR pattern
+incomp_data = ts_1.Contamination.mcar(ts_1.data, series_rate=0.2, missing_rate=0.2, seed=True)
 
 # [OPTIONAL] you can plot your raw data / print the contamination
-ts_1.print(limit_series=10)
-ts_1.plot(ts_1.data, infected_data, title="contamination", max_series=1, save_path="./imputegap/assets")
+ts_1.print(limit_timestamps=12, limit_series=7)
+ts_1.plot(ts_1.data, incomp_data, max_series=9, subplot=True, save_path="./imputegap/assets")
 ```
 
 ---
@@ -146,25 +145,29 @@ ts_1.load_timeseries(utils.search_path("eeg-alcohol"))
 ts_1.normalize(normalizer="min_max")
 
 # 3. contamination of the data
-infected_data = ts_1.Contamination.mcar(ts_1.data)
+incomp_data = ts_1.Contamination.mcar(ts_1.data)
+
+# [OPTIONAL] save your results in a new Time Series object
+ts_2 = TimeSeries().import_matrix(incomp_data)
 
 # 4. imputation of the contaminated data
 # choice of the algorithm, and their parameters (default, automl, or defined by the user)
-cdrec = Imputation.MatrixCompletion.CDRec(infected_data)
+cdrec = Imputation.MatrixCompletion.CDRec(ts_2.data)
 
 # imputation with default values
 cdrec.impute()
 # OR imputation with user defined values
-cdrec.impute(params={"rank": 5, "epsilon": 0.01, "iterations": 100})
+# >>> cdrec.impute(params={"rank": 5, "epsilon": 0.01, "iterations": 100})
 
 # [OPTIONAL] save your results in a new Time Series object
-ts_3 = TimeSeries().import_matrix(cdrec.imputed_matrix)
+ts_3 = TimeSeries().import_matrix(cdrec.recov_data)
 
 # 5. score the imputation with the raw_data
 cdrec.score(ts_1.data, ts_3.data)
 
-# [OPTIONAL] print the results
-ts_3.print_results(cdrec.metrics)
+# 6. display the results
+ts_3.print_results(cdrec.metrics, algorithm="cdrec")
+ts_3.plot(input_data=ts_1.data, incomp_data=ts_2.data, recov_data=ts_3.data, max_series=9, subplot=True, save_path="./imputegap/assets")
 ```
 
 ---
@@ -190,24 +193,21 @@ ts_1.load_timeseries(utils.search_path("eeg-alcohol"))
 ts_1.normalize(normalizer="min_max")
 
 # 3. contamination of the data
-infected_data = ts_1.Contamination.mcar(ts_1.data)
+miss_matrix = ts_1.Contamination.mcar(ts_1.data)
 
 # 4. imputation of the contaminated data
 # imputation with AutoML which will discover the optimal hyperparameters for your dataset and your algorithm
-cdrec = Imputation.MatrixCompletion.CDRec(infected_data).impute(user_def=False, params={"ground_truth": ts_1.data,
-                                                                                        "optimizer": "bayesian",
-                                                                                        "options": {"n_calls": 5}})
+cdrec = Imputation.MatrixCompletion.CDRec(miss_matrix).impute(user_def=False, params={"input_data": ts_1.data, "optimizer": "bayesian", "options": {"n_calls": 3}})
 
 # 5. score the imputation with the raw_data
 cdrec.score(ts_1.data, cdrec.recov_data)
 
-# 6. [OPTIONAL] display the results
+# 6. display the results
 ts_1.print_results(cdrec.metrics)
-ts_1.plot(input_data=ts_1.data, incomp_data=infected_data, imputed_data=cdrec.recov_data, title="imputation",
-          max_series=1, save_path="./imputegap/assets", display=True)
+ts_1.plot(input_data=ts_1.data, incomp_data=miss_matrix, recov_data=cdrec.recov_data, max_series=9, subplot=True, save_path="./imputegap/assets", display=True)
 
-# 7. [OPTIONAL] save hyperparameters
-utils.save_optimization(optimal_params=cdrec.parameters, algorithm="cdrec", dataset="eeg", optimizer="b")
+# 7. save hyperparameters
+utils.save_optimization(optimal_params=cdrec.parameters, algorithm="cdrec", dataset="eeg", optimizer="t")
 ```
 
 ---
@@ -234,7 +234,7 @@ ts_1 = TimeSeries()
 ts_1.load_timeseries(utils.search_path("eeg-alcohol"))
 
 # 3. call the explanation of your dataset with a specific algorithm to gain insight on the Imputation results
-shap_values, shap_details = Explainer.shap_explainer(input_data=ts_1.data, file_name="eeg-alcohol", algorithm="cdrec")
+shap_values, shap_details = Explainer.shap_explainer(input_data=ts_1.data, extractor="pycatch22", pattern="mcar", missing_rate=0.25, limit_ratio=1, split_ratio=0.7, file_name="eeg-alcohol", algorithm="cdrec")
 
 # [OPTIONAL] print the results with the impact of each feature.
 Explainer.print(shap_values, shap_details)
diff --git a/build/lib/imputegap/recovery/explainer.py b/build/lib/imputegap/recovery/explainer.py
index 3befc867..4885199a 100644
--- a/build/lib/imputegap/recovery/explainer.py
+++ b/build/lib/imputegap/recovery/explainer.py
@@ -35,9 +35,9 @@ class Explainer:
     launch_shap_model(x_dataset, x_information, y_dataset, file, algorithm, splitter=10, display=False, verbose=False)
         Launch the SHAP model to explain the dataset features.
 
-    shap_explainer(raw_data, algorithm="cdrec", params=None, contamination="mcar", missing_rate=0.4,
-                   block_size=10, protection=0.1, use_seed=True, seed=42, limitation=15, splitter=0,
-                   file_name="ts", display=False, verbose=False)
+    shap_explainer(raw_data, algorithm="cdrec", params=None, extractor="pycatch22",
+                   contamination="mcar", missing_rate=0.4, block_size=10, protection=0.1, use_seed=True, seed=42,
+                   limitation=15, splitter=0, file_name="ts", display=False, verbose=False)
         Handle parameters and set variables to launch the SHAP model.
 
     """
diff --git a/build/lib/imputegap/runner_datasets.py b/build/lib/imputegap/runner_datasets.py
index 2302e223..d92d2aba 100644
--- a/build/lib/imputegap/runner_datasets.py
+++ b/build/lib/imputegap/runner_datasets.py
@@ -39,7 +39,7 @@
     data_n.plot(input_data=data_n.data, save_path="./dataset/docs/" + dataset + "", display=False)
 
     categories, features = Explainer.load_configuration()
-    characteristics, descriptions = Explainer.extract_features(data=data_n.data, features_categories=categories, features_list=features, do_catch24=False)
+    characteristics, descriptions = Explainer.extractor_pycatch(data=data_n.data, features_categories=categories, features_list=features, do_catch24=False)
 
     p = "./dataset/docs/"+dataset+"/features_"+dataset+".txt"
     with open(p, 'w') as f:
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.cdrec.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.cdrec.doctree
index 914a3d38..2ba57345 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.cdrec.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.cdrec.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.iim.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.iim.doctree
index 4d2022bb..9ffb55cf 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.iim.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.iim.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mean_impute.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mean_impute.doctree
index 57b731b0..680c2c27 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mean_impute.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mean_impute.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.min_impute.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.min_impute.doctree
index 7cb90873..1889345c 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.min_impute.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.min_impute.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mrnn.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mrnn.doctree
index 9111cc12..344d79da 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mrnn.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.mrnn.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.stmvl.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.stmvl.doctree
index 65fc9cc3..7da8d1d9 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.stmvl.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.stmvl.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.zero_impute.doctree b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.zero_impute.doctree
index 0c3722cc..34184a7d 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.algorithms.zero_impute.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.algorithms.zero_impute.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmark.doctree b/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmark.doctree
new file mode 100644
index 00000000..cf9b7bea
Binary files /dev/null and b/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmark.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmarking.doctree b/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmarking.doctree
index 72409b5d..90da76b9 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmarking.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.recovery.benchmarking.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.recovery.evaluation.doctree b/docs/generation/build/doctrees/autosummary/imputegap.recovery.evaluation.doctree
index ad235417..a3fd67bc 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.recovery.evaluation.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.recovery.evaluation.doctree differ
diff --git a/docs/generation/build/doctrees/autosummary/imputegap.recovery.imputation.doctree b/docs/generation/build/doctrees/autosummary/imputegap.recovery.imputation.doctree
index fd4cd4bd..a70fe39a 100644
Binary files a/docs/generation/build/doctrees/autosummary/imputegap.recovery.imputation.doctree and b/docs/generation/build/doctrees/autosummary/imputegap.recovery.imputation.doctree differ
diff --git a/docs/generation/build/doctrees/environment.pickle b/docs/generation/build/doctrees/environment.pickle
index 11c51ff9..25132679 100644
Binary files a/docs/generation/build/doctrees/environment.pickle and b/docs/generation/build/doctrees/environment.pickle differ
diff --git a/docs/generation/build/doctrees/imputegap.benchmark.doctree b/docs/generation/build/doctrees/imputegap.benchmark.doctree
new file mode 100644
index 00000000..a17756d5
Binary files /dev/null and b/docs/generation/build/doctrees/imputegap.benchmark.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.benchmarking.doctree b/docs/generation/build/doctrees/imputegap.benchmarking.doctree
deleted file mode 100644
index 916fa026..00000000
Binary files a/docs/generation/build/doctrees/imputegap.benchmarking.doctree and /dev/null differ
diff --git a/docs/generation/build/doctrees/imputegap.cdrec.doctree b/docs/generation/build/doctrees/imputegap.cdrec.doctree
index cf9a2e5e..942cbfdc 100644
Binary files a/docs/generation/build/doctrees/imputegap.cdrec.doctree and b/docs/generation/build/doctrees/imputegap.cdrec.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.doctree b/docs/generation/build/doctrees/imputegap.doctree
index 43adebc1..d683d2eb 100644
Binary files a/docs/generation/build/doctrees/imputegap.doctree and b/docs/generation/build/doctrees/imputegap.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.evaluation.doctree b/docs/generation/build/doctrees/imputegap.evaluation.doctree
index 20785aa4..343ceeb2 100644
Binary files a/docs/generation/build/doctrees/imputegap.evaluation.doctree and b/docs/generation/build/doctrees/imputegap.evaluation.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.explainer.doctree b/docs/generation/build/doctrees/imputegap.explainer.doctree
index cd3f88b8..5f5e39cb 100644
Binary files a/docs/generation/build/doctrees/imputegap.explainer.doctree and b/docs/generation/build/doctrees/imputegap.explainer.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.iim.doctree b/docs/generation/build/doctrees/imputegap.iim.doctree
index bb4994de..3ec608b3 100644
Binary files a/docs/generation/build/doctrees/imputegap.iim.doctree and b/docs/generation/build/doctrees/imputegap.iim.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.imputation.doctree b/docs/generation/build/doctrees/imputegap.imputation.doctree
index 5a714490..99b630a3 100644
Binary files a/docs/generation/build/doctrees/imputegap.imputation.doctree and b/docs/generation/build/doctrees/imputegap.imputation.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.manager.doctree b/docs/generation/build/doctrees/imputegap.manager.doctree
index a8ce3b39..84383ce1 100644
Binary files a/docs/generation/build/doctrees/imputegap.manager.doctree and b/docs/generation/build/doctrees/imputegap.manager.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.mean_impute.doctree b/docs/generation/build/doctrees/imputegap.mean_impute.doctree
index 6f213f9a..b148b06d 100644
Binary files a/docs/generation/build/doctrees/imputegap.mean_impute.doctree and b/docs/generation/build/doctrees/imputegap.mean_impute.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.min_impute.doctree b/docs/generation/build/doctrees/imputegap.min_impute.doctree
index f0b3edc1..6aa985f3 100644
Binary files a/docs/generation/build/doctrees/imputegap.min_impute.doctree and b/docs/generation/build/doctrees/imputegap.min_impute.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.mrnn.doctree b/docs/generation/build/doctrees/imputegap.mrnn.doctree
index 1997c108..9dc652ef 100644
Binary files a/docs/generation/build/doctrees/imputegap.mrnn.doctree and b/docs/generation/build/doctrees/imputegap.mrnn.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.optimization.doctree b/docs/generation/build/doctrees/imputegap.optimization.doctree
index a5a9a392..010ba52e 100644
Binary files a/docs/generation/build/doctrees/imputegap.optimization.doctree and b/docs/generation/build/doctrees/imputegap.optimization.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.stmvl.doctree b/docs/generation/build/doctrees/imputegap.stmvl.doctree
index 7411376c..fa87832b 100644
Binary files a/docs/generation/build/doctrees/imputegap.stmvl.doctree and b/docs/generation/build/doctrees/imputegap.stmvl.doctree differ
diff --git a/docs/generation/build/doctrees/imputegap.zero_impute.doctree b/docs/generation/build/doctrees/imputegap.zero_impute.doctree
index 82371124..2e760539 100644
Binary files a/docs/generation/build/doctrees/imputegap.zero_impute.doctree and b/docs/generation/build/doctrees/imputegap.zero_impute.doctree differ
diff --git a/docs/generation/build/doctrees/index.doctree b/docs/generation/build/doctrees/index.doctree
index af3d488b..c1ae6e0e 100644
Binary files a/docs/generation/build/doctrees/index.doctree and b/docs/generation/build/doctrees/index.doctree differ
diff --git a/docs/generation/build/html/.buildinfo b/docs/generation/build/html/.buildinfo
index 0bc43f8c..a82ef144 100644
--- a/docs/generation/build/html/.buildinfo
+++ b/docs/generation/build/html/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: e41eca0a3efc7159e0af65e9f919fd5f
+config: 786669019b63ab7790c3ca690c5f3924
 tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.cdrec.html b/docs/generation/build/html/autosummary/imputegap.algorithms.cdrec.html
index 51724623..fdee2249 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.cdrec.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.cdrec.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.cdrec &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.cdrec &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,14 +15,14 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="next" title="imputegap.algorithms.stmvl" href="imputegap.algorithms.stmvl.html" />
-    <link rel="prev" title="imputegap.recovery.benchmarking" href="imputegap.recovery.benchmarking.html" /> 
+    <link rel="prev" title="imputegap.recovery.benchmark" href="imputegap.recovery.benchmark.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.cdrec.html#imputegap.algorithms.cdrec.cdrec" title="imputegap.algorithms.cdrec.cdrec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cdrec</span></code></a>(contamination, truncation_rank, ...[, ...])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.cdrec.html#imputegap.algorithms.cdrec.cdrec" title="imputegap.algorithms.cdrec.cdrec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">cdrec</span></code></a>(incomp_data, truncation_rank, ...[, ...])</p></td>
 <td><p>CDRec algorithm for matrix imputation of missing values using Centroid Decomposition.</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="../imputegap.cdrec.html#imputegap.algorithms.cdrec.native_cdrec" title="imputegap.algorithms.cdrec.native_cdrec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">native_cdrec</span></code></a>(__py_matrix, __py_rank, ...)</p></td>
@@ -108,14 +108,14 @@
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="imputegap.recovery.benchmarking.html" class="btn btn-neutral float-left" title="imputegap.recovery.benchmarking" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="imputegap.recovery.benchmark.html" class="btn btn-neutral float-left" title="imputegap.recovery.benchmark" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="imputegap.algorithms.stmvl.html" class="btn btn-neutral float-right" title="imputegap.algorithms.stmvl" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.html b/docs/generation/build/html/autosummary/imputegap.algorithms.html
index 7480b698..1328b37a 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -99,7 +99,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.iim.html b/docs/generation/build/html/autosummary/imputegap.algorithms.iim.html
index 532bbae0..40b206f0 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.iim.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.iim.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.iim &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.iim &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.iim.html#imputegap.algorithms.iim.iim" title="imputegap.algorithms.iim.iim"><code class="xref py py-obj docutils literal notranslate"><span class="pre">iim</span></code></a>(contamination, number_neighbor, algo_code)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.iim.html#imputegap.algorithms.iim.iim" title="imputegap.algorithms.iim.iim"><code class="xref py py-obj docutils literal notranslate"><span class="pre">iim</span></code></a>(incomp_data, number_neighbor, algo_code)</p></td>
 <td><p>Perform imputation using the Iterative Imputation Method (IIM) algorithm.</p></td>
 </tr>
 </tbody>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.mean_impute.html b/docs/generation/build/html/autosummary/imputegap.algorithms.mean_impute.html
index 423809b7..568f3894 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.mean_impute.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.mean_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mean_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mean_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.mean_impute.html#imputegap.algorithms.mean_impute.mean_impute" title="imputegap.algorithms.mean_impute.mean_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_impute</span></code></a>(contamination[, params])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.mean_impute.html#imputegap.algorithms.mean_impute.mean_impute" title="imputegap.algorithms.mean_impute.mean_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mean_impute</span></code></a>(incomp_data[, params])</p></td>
 <td><p>Impute NaN values with the mean value of the time series.</p></td>
 </tr>
 </tbody>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.min_impute.html b/docs/generation/build/html/autosummary/imputegap.algorithms.min_impute.html
index f40b1c01..da0288b5 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.min_impute.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.min_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.min_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.min_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.min_impute.html#imputegap.algorithms.min_impute.min_impute" title="imputegap.algorithms.min_impute.min_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min_impute</span></code></a>(contamination[, params])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.min_impute.html#imputegap.algorithms.min_impute.min_impute" title="imputegap.algorithms.min_impute.min_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">min_impute</span></code></a>(incomp_data[, params])</p></td>
 <td><p>Impute NaN values with the minimum value of the time series.</p></td>
 </tr>
 </tbody>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.mrnn.html b/docs/generation/build/html/autosummary/imputegap.algorithms.mrnn.html
index 44e5f336..6c1d3379 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.mrnn.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.mrnn.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mrnn &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mrnn &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.mrnn.html#imputegap.algorithms.mrnn.mrnn" title="imputegap.algorithms.mrnn.mrnn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mrnn</span></code></a>(contamination, hidden_dim, ...[, logs])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.mrnn.html#imputegap.algorithms.mrnn.mrnn" title="imputegap.algorithms.mrnn.mrnn"><code class="xref py py-obj docutils literal notranslate"><span class="pre">mrnn</span></code></a>(incomp_data, hidden_dim, learning_rate, ...)</p></td>
 <td><p>Perform imputation using the Multivariate Recurrent Neural Network (MRNN) algorithm.</p></td>
 </tr>
 </tbody>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.stmvl.html b/docs/generation/build/html/autosummary/imputegap.algorithms.stmvl.html
index 46ec001a..c06ac39e 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.stmvl.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.stmvl.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.stmvl &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.stmvl &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -97,7 +97,7 @@
 <tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.stmvl.html#imputegap.algorithms.stmvl.native_stmvl" title="imputegap.algorithms.stmvl.native_stmvl"><code class="xref py py-obj docutils literal notranslate"><span class="pre">native_stmvl</span></code></a>(__py_matrix, __py_window, ...)</p></td>
 <td><p>Perform matrix imputation using the STMVL algorithm with native C++ support.</p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="../imputegap.stmvl.html#imputegap.algorithms.stmvl.stmvl" title="imputegap.algorithms.stmvl.stmvl"><code class="xref py py-obj docutils literal notranslate"><span class="pre">stmvl</span></code></a>(contamination, window_size, gamma, alpha)</p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="../imputegap.stmvl.html#imputegap.algorithms.stmvl.stmvl" title="imputegap.algorithms.stmvl.stmvl"><code class="xref py py-obj docutils literal notranslate"><span class="pre">stmvl</span></code></a>(incomp_data, window_size, gamma, alpha)</p></td>
 <td><p>CDREC algorithm for imputation of missing data :author: Quentin Nater</p></td>
 </tr>
 </tbody>
@@ -115,7 +115,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.algorithms.zero_impute.html b/docs/generation/build/html/autosummary/imputegap.algorithms.zero_impute.html
index abd826fe..e3a98d5e 100644
--- a/docs/generation/build/html/autosummary/imputegap.algorithms.zero_impute.html
+++ b/docs/generation/build/html/autosummary/imputegap.algorithms.zero_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.zero_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.zero_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Functions</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.zero_impute.html#imputegap.algorithms.zero_impute.zero_impute" title="imputegap.algorithms.zero_impute.zero_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">zero_impute</span></code></a>(contamination[, params])</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.zero_impute.html#imputegap.algorithms.zero_impute.zero_impute" title="imputegap.algorithms.zero_impute.zero_impute"><code class="xref py py-obj docutils literal notranslate"><span class="pre">zero_impute</span></code></a>(incomp_data[, params])</p></td>
 <td><p>Impute missing values (NaNs) with zeros in the time series.</p></td>
 </tr>
 </tbody>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.benchmark.html b/docs/generation/build/html/autosummary/imputegap.recovery.benchmark.html
new file mode 100644
index 00000000..22c15a36
--- /dev/null
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.benchmark.html
@@ -0,0 +1,135 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="../">
+<head>
+  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
+
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>imputegap.recovery.benchmark &mdash; imputegap 1.0.3 documentation</title>
+      <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
+      <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
+      <link rel="stylesheet" type="text/css" href="../static/custom.css" />
+
+  
+    <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
+      <script src="../static/jquery.js?v=5d32c60e"></script>
+      <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
+      <script src="../static/doctools.js?v=9bcbadda"></script>
+      <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="../static/js/theme.js"></script>
+    <link rel="index" title="Index" href="../genindex.html" />
+    <link rel="search" title="Search" href="../search.html" />
+    <link rel="next" title="imputegap.algorithms.cdrec" href="imputegap.algorithms.cdrec.html" />
+    <link rel="prev" title="imputegap.recovery.evaluation" href="imputegap.recovery.evaluation.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="../index.html" class="icon icon-home">
+            imputegap
+              <img src="https://www.naterscreations.com/imputegap/logo_imputegab.png" class="logo" alt="Logo"/>
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.manager.html">imputegap.recovery.manager</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.imputation.html">imputegap.recovery.imputation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
+<li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.recovery.benchmark</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.mrnn.html">imputegap.algorithms.mrnn</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.mean_impute.html">imputegap.algorithms.mean_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.min_impute.html">imputegap.algorithms.min_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.zero_impute.html">imputegap.algorithms.zero_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.tools.utils.html">imputegap.tools.utils</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../imputegap.html">imputegap package</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../index.html">imputegap</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
+      <li class="breadcrumb-item active">imputegap.recovery.benchmark</li>
+      <li class="wy-breadcrumbs-aside">
+              <a href="https://github.com/qnater/https://github.com/eXascaleInfolab/ImputeGAP/blob/https://github.com/eXascaleInfolab/ImputeGAP_autosummary/imputegap.recovery.benchmark.rst" class="fa fa-github"> Edit on GitHub</a>
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <section id="module-imputegap.recovery.benchmark">
+<span id="imputegap-recovery-benchmark"></span><h1>imputegap.recovery.benchmark<a class="headerlink" href="#module-imputegap.recovery.benchmark" title="Link to this heading"></a></h1>
+<p class="rubric">Classes</p>
+<table class="autosummary longtable docutils align-default">
+<tbody>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.benchmark.html#id0" title="imputegap.recovery.benchmark.Benchmark"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Benchmark</span></code></a>()</p></td>
+<td><p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and patterns.</p></td>
+</tr>
+</tbody>
+</table>
+</section>
+
+
+           </div>
+          </div>
+          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
+        <a href="imputegap.recovery.evaluation.html" class="btn btn-neutral float-left" title="imputegap.recovery.evaluation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="imputegap.algorithms.cdrec.html" class="btn btn-neutral float-right" title="imputegap.algorithms.cdrec" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+    </div>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.benchmarking.html b/docs/generation/build/html/autosummary/imputegap.recovery.benchmarking.html
index ec87976f..d06d0dca 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.benchmarking.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.benchmarking.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.benchmarking &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.benchmark &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,14 +15,12 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
-    <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="imputegap.algorithms.cdrec" href="imputegap.algorithms.cdrec.html" />
-    <link rel="prev" title="imputegap.recovery.evaluation" href="imputegap.recovery.evaluation.html" /> 
+    <link rel="search" title="Search" href="../search.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -45,13 +43,13 @@
   </form>
 </div>
         </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
-              <ul class="current">
+              <ul>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.manager.html">imputegap.recovery.manager</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.imputation.html">imputegap.recovery.imputation</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -79,7 +77,7 @@
           <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
       <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
-      <li class="breadcrumb-item active">imputegap.recovery.benchmarking</li>
+      <li class="breadcrumb-item active">imputegap.recovery.benchmark</li>
       <li class="wy-breadcrumbs-aside">
               <a href="https://github.com/qnater/https://github.com/eXascaleInfolab/ImputeGAP/blob/https://github.com/eXascaleInfolab/ImputeGAP_autosummary/imputegap.recovery.benchmarking.rst" class="fa fa-github"> Edit on GitHub</a>
       </li>
@@ -89,14 +87,11 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
              
-  <section id="module-imputegap.recovery.benchmarking">
-<span id="imputegap-recovery-benchmarking"></span><h1>imputegap.recovery.benchmarking<a class="headerlink" href="#module-imputegap.recovery.benchmarking" title="Link to this heading"></a></h1>
+  <section id="module-imputegap.recovery.benchmark">
+<span id="imputegap-recovery-benchmark"></span><h1>imputegap.recovery.benchmark<a class="headerlink" href="#module-imputegap.recovery.benchmark" title="Link to this heading"></a></h1>
 <p class="rubric">Classes</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.benchmarking.html#id0" title="imputegap.recovery.benchmarking.Benchmarking"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Benchmarking</span></code></a>()</p></td>
-<td><p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and scenarios.</p></td>
-</tr>
 </tbody>
 </table>
 </section>
@@ -104,15 +99,12 @@
 
            </div>
           </div>
-          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="imputegap.recovery.evaluation.html" class="btn btn-neutral float-left" title="imputegap.recovery.evaluation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="imputegap.algorithms.cdrec.html" class="btn btn-neutral float-right" title="imputegap.algorithms.cdrec" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
-    </div>
+          <footer>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.evaluation.html b/docs/generation/build/html/autosummary/imputegap.recovery.evaluation.html
index f1efbb4d..ba48ce20 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.evaluation.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.evaluation.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.evaluation &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.evaluation &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,13 +15,13 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
-    <link rel="next" title="imputegap.recovery.benchmarking" href="imputegap.recovery.benchmarking.html" />
+    <link rel="next" title="imputegap.recovery.benchmark" href="imputegap.recovery.benchmark.html" />
     <link rel="prev" title="imputegap.recovery.explainer" href="imputegap.recovery.explainer.html" /> 
 </head>
 
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Classes</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.evaluation.html#id0" title="imputegap.recovery.evaluation.Evaluation"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Evaluation</span></code></a>(ground_truth, imputation, ...)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.evaluation.html#id0" title="imputegap.recovery.evaluation.Evaluation"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Evaluation</span></code></a>(input_data, recov_data, incomp_data)</p></td>
 <td><p>A class to evaluate the performance of imputation algorithms by comparing imputed time series with the ground truth.</p></td>
 </tr>
 </tbody>
@@ -106,13 +106,13 @@
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="imputegap.recovery.explainer.html" class="btn btn-neutral float-left" title="imputegap.recovery.explainer" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="imputegap.recovery.benchmarking.html" class="btn btn-neutral float-right" title="imputegap.recovery.benchmarking" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="imputegap.recovery.benchmark.html" class="btn btn-neutral float-right" title="imputegap.recovery.benchmark" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.explainer.html b/docs/generation/build/html/autosummary/imputegap.recovery.explainer.html
index cd8639ba..4d5a3389 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.explainer.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.explainer.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.explainer &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.explainer &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.imputation.html b/docs/generation/build/html/autosummary/imputegap.recovery.imputation.html
index e60f9c25..547812de 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.imputation.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.imputation.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.imputation &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.imputation &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -94,7 +94,7 @@
 <p class="rubric">Classes</p>
 <table class="autosummary longtable docutils align-default">
 <tbody>
-<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.imputation.html#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BaseImputer</span></code></a>(infected_matrix)</p></td>
+<tr class="row-odd"><td><p><a class="reference internal" href="../imputegap.imputation.html#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-obj docutils literal notranslate"><span class="pre">BaseImputer</span></code></a>(incomp_data)</p></td>
 <td><p>Base class for imputation algorithms.</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="../imputegap.imputation.html#imputegap.recovery.imputation.Imputation" title="imputegap.recovery.imputation.Imputation"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Imputation</span></code></a>()</p></td>
@@ -115,7 +115,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.manager.html b/docs/generation/build/html/autosummary/imputegap.recovery.manager.html
index 59780815..b66a5ebe 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.manager.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.manager.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.manager &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.manager &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -112,7 +112,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.recovery.optimization.html b/docs/generation/build/html/autosummary/imputegap.recovery.optimization.html
index 7c2cef3b..9e537e37 100644
--- a/docs/generation/build/html/autosummary/imputegap.recovery.optimization.html
+++ b/docs/generation/build/html/autosummary/imputegap.recovery.optimization.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.optimization &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.optimization &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1 current"><a class="current reference internal" href="#">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -115,7 +115,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.tools.algorithm_parameters.html b/docs/generation/build/html/autosummary/imputegap.tools.algorithm_parameters.html
index d4b2efa1..059945ab 100644
--- a/docs/generation/build/html/autosummary/imputegap.tools.algorithm_parameters.html
+++ b/docs/generation/build/html/autosummary/imputegap.tools.algorithm_parameters.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools.algorithm_parameters &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools.algorithm_parameters &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -99,7 +99,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.tools.html b/docs/generation/build/html/autosummary/imputegap.tools.html
index 27f9d935..9c280188 100644
--- a/docs/generation/build/html/autosummary/imputegap.tools.html
+++ b/docs/generation/build/html/autosummary/imputegap.tools.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -99,7 +99,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.tools.utils.html b/docs/generation/build/html/autosummary/imputegap.tools.utils.html
index a4ee06f3..8b7856a9 100644
--- a/docs/generation/build/html/autosummary/imputegap.tools.utils.html
+++ b/docs/generation/build/html/autosummary/imputegap.tools.utils.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools.utils &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools.utils &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -127,7 +127,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/autosummary/imputegap.wrapper.html b/docs/generation/build/html/autosummary/imputegap.wrapper.html
index 7b5bb87c..e78185b0 100644
--- a/docs/generation/build/html/autosummary/imputegap.wrapper.html
+++ b/docs/generation/build/html/autosummary/imputegap.wrapper.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.wrapper &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.wrapper &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -99,7 +99,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/genindex.html b/docs/generation/build/html/genindex.html
index b1580678..5e445269 100644
--- a/docs/generation/build/html/genindex.html
+++ b/docs/generation/build/html/genindex.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Index &mdash; imputegap 1.0.2 documentation</title>
+  <title>Index &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -156,7 +156,9 @@ <h2 id="A">A</h2>
       </ul></li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.benchmarking.html#id1">avg_results() (imputegap.recovery.benchmarking.Benchmarking method)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.avg_results">[1]</a>
+      <li><a href="imputegap.benchmark.html#id1">average_runs_by_names() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.average_runs_by_names">[1]</a>
+</li>
+      <li><a href="imputegap.benchmark.html#id2">avg_results() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.avg_results">[1]</a>
 </li>
   </ul></td>
 </tr></table>
@@ -170,9 +172,9 @@ <h2 id="B">B</h2>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.benchmarking.html#id0">Benchmarking (class in imputegap.recovery.benchmarking)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking">[1]</a>
+      <li><a href="imputegap.benchmark.html#id0">Benchmark (class in imputegap.recovery.benchmark)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark">[1]</a>
 </li>
-      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.blackout">blackout() (imputegap.recovery.manager.TimeSeries.Contaminate method)</a>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.blackout">blackout() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -182,17 +184,17 @@ <h2 id="C">C</h2>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="imputegap.cdrec.html#imputegap.algorithms.cdrec.cdrec">cdrec() (in module imputegap.algorithms.cdrec)</a>
 </li>
-      <li><a href="imputegap.benchmarking.html#id2">comprehensive_evaluation() (imputegap.recovery.benchmarking.Benchmarking method)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation">[1]</a>
+      <li><a href="imputegap.evaluation.html#id1">compute_all_metrics() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_all_metrics">[1]</a>
 </li>
-      <li><a href="imputegap.evaluation.html#id1">compute_correlation() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_correlation">[1]</a>
+      <li><a href="imputegap.evaluation.html#id2">compute_correlation() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_correlation">[1]</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.evaluation.html#id2">compute_mae() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mae">[1]</a>
+      <li><a href="imputegap.evaluation.html#id3">compute_mae() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mae">[1]</a>
 </li>
-      <li><a href="imputegap.evaluation.html#id3">compute_mi() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mi">[1]</a>
+      <li><a href="imputegap.evaluation.html#id4">compute_mi() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mi">[1]</a>
 </li>
-      <li><a href="imputegap.evaluation.html#id4">compute_rmse() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_rmse">[1]</a>
+      <li><a href="imputegap.evaluation.html#id5">compute_rmse() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_rmse">[1]</a>
 </li>
       <li><a href="imputegap.explainer.html#id0">convert_results() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.convert_results">[1]</a>
 </li>
@@ -201,6 +203,10 @@ <h2 id="C">C</h2>
 
 <h2 id="D">D</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.disjoint">disjoint() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
+</li>
+  </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="imputegap.utils.html#imputegap.tools.utils.display_title">display_title() (in module imputegap.tools.utils)</a>
 </li>
@@ -210,15 +216,19 @@ <h2 id="D">D</h2>
 <h2 id="E">E</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="imputegap.benchmark.html#id3">eval() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.eval">[1]</a>
+</li>
       <li><a href="imputegap.imputation.html#imputegap.recovery.imputation.Imputation.evaluate_params">evaluate_params() (imputegap.recovery.imputation.Imputation method)</a>
 </li>
       <li><a href="imputegap.evaluation.html#id0">Evaluation (class in imputegap.recovery.evaluation)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation">[1]</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="imputegap.explainer.html#id1">execute_shap_model() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.execute_shap_model">[1]</a>
+</li>
       <li><a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer">Explainer (class in imputegap.recovery.explainer)</a>
 </li>
-      <li><a href="imputegap.explainer.html#id1">extract_features() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extract_features">[1]</a>
+      <li><a href="imputegap.explainer.html#id2">extractor_pycatch() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extractor_pycatch">[1]</a>
 </li>
   </ul></td>
 </tr></table>
@@ -226,13 +236,17 @@ <h2 id="E">E</h2>
 <h2 id="G">G</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.benchmarking.html#id3">generate_matrix() (imputegap.recovery.benchmarking.Benchmarking method)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_matrix">[1]</a>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.gaussian">gaussian() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
+</li>
+      <li><a href="imputegap.benchmark.html#id4">generate_heatmap() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_heatmap">[1]</a>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.benchmarking.html#id4">generate_plots() (imputegap.recovery.benchmarking.Benchmarking method)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_plots">[1]</a>
+      <li><a href="imputegap.benchmark.html#id5">generate_plots() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_plots">[1]</a>
+</li>
+      <li><a href="imputegap.benchmark.html#id6">generate_reports_excel() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_reports_excel">[1]</a>
 </li>
-      <li><a href="imputegap.benchmarking.html#id5">generate_reports() (imputegap.recovery.benchmarking.Benchmarking method)</a>, <a href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_reports">[1]</a>
+      <li><a href="imputegap.benchmark.html#id7">generate_reports_txt() (imputegap.recovery.benchmark.Benchmark method)</a>, <a href="imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_reports_txt">[1]</a>
 </li>
   </ul></td>
 </tr></table>
@@ -354,10 +368,10 @@ <h2 id="I">I</h2>
 </li>
       </ul></li>
       <li>
-    imputegap.recovery.benchmarking
+    imputegap.recovery.benchmark
 
       <ul>
-        <li><a href="autosummary/imputegap.recovery.benchmarking.html#module-imputegap.recovery.benchmarking">module</a>, <a href="imputegap.benchmarking.html#module-0">[1]</a>, <a href="imputegap.benchmarking.html#module-imputegap.recovery.benchmarking">[2]</a>
+        <li><a href="autosummary/imputegap.recovery.benchmark.html#module-imputegap.recovery.benchmark">module</a>, <a href="autosummary/imputegap.recovery.benchmarking.html#module-imputegap.recovery.benchmark">[1]</a>, <a href="imputegap.benchmark.html#module-0">[2]</a>, <a href="imputegap.benchmark.html#module-imputegap.recovery.benchmark">[3]</a>
 </li>
       </ul></li>
       <li>
@@ -429,8 +443,6 @@ <h2 id="I">I</h2>
 <h2 id="L">L</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.explainer.html#id2">launch_shap_model() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.launch_shap_model">[1]</a>
-</li>
       <li><a href="imputegap.explainer.html#id3">load_configuration() (imputegap.recovery.explainer.Explainer method)</a>, <a href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.load_configuration">[1]</a>
 </li>
       <li><a href="imputegap.utils.html#imputegap.tools.utils.load_parameters">load_parameters() (in module imputegap.tools.utils)</a>
@@ -463,15 +475,13 @@ <h2 id="L">L</h2>
 <h2 id="M">M</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.mcar">mcar() (imputegap.recovery.manager.TimeSeries.Contaminate method)</a>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.mcar">mcar() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
 </li>
       <li><a href="imputegap.mean_impute.html#imputegap.algorithms.mean_impute.mean_impute">mean_impute() (in module imputegap.algorithms.mean_impute)</a>
-</li>
-      <li><a href="imputegap.evaluation.html#id5">metrics_computation() (imputegap.recovery.evaluation.Evaluation method)</a>, <a href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.metrics_computation">[1]</a>
 </li>
       <li><a href="imputegap.min_impute.html#imputegap.algorithms.min_impute.min_impute">min_impute() (in module imputegap.algorithms.min_impute)</a>
 </li>
-      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.missing_percentage">missing_percentage() (imputegap.recovery.manager.TimeSeries.Contaminate method)</a>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.missing_percentage">missing_percentage() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
 </li>
       <li>
     module
@@ -495,7 +505,7 @@ <h2 id="M">M</h2>
 </li>
         <li><a href="autosummary/imputegap.algorithms.zero_impute.html#module-imputegap.algorithms.zero_impute">imputegap.algorithms.zero_impute</a>, <a href="imputegap.zero_impute.html#module-imputegap.algorithms.zero_impute">[1]</a>
 </li>
-        <li><a href="autosummary/imputegap.recovery.benchmarking.html#module-imputegap.recovery.benchmarking">imputegap.recovery.benchmarking</a>, <a href="imputegap.benchmarking.html#module-0">[1]</a>, <a href="imputegap.benchmarking.html#module-imputegap.recovery.benchmarking">[2]</a>
+        <li><a href="autosummary/imputegap.recovery.benchmark.html#module-imputegap.recovery.benchmark">imputegap.recovery.benchmark</a>, <a href="autosummary/imputegap.recovery.benchmarking.html#module-imputegap.recovery.benchmark">[1]</a>, <a href="imputegap.benchmark.html#module-0">[2]</a>, <a href="imputegap.benchmark.html#module-imputegap.recovery.benchmark">[3]</a>
 </li>
         <li><a href="autosummary/imputegap.recovery.evaluation.html#module-imputegap.recovery.evaluation">imputegap.recovery.evaluation</a>, <a href="imputegap.evaluation.html#module-0">[1]</a>, <a href="imputegap.evaluation.html#module-imputegap.recovery.evaluation">[2]</a>
 </li>
@@ -564,6 +574,8 @@ <h2 id="O">O</h2>
         <li><a href="imputegap.optimization.html#imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize">(imputegap.recovery.optimization.Optimization.SuccessiveHalving method)</a>
 </li>
       </ul></li>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.overlap">overlap() (imputegap.recovery.manager.TimeSeries.Contamination method)</a>
+</li>
   </ul></td>
 </tr></table>
 
@@ -626,7 +638,7 @@ <h2 id="T">T</h2>
 </li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
-      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate">TimeSeries.Contaminate (class in imputegap.recovery.manager)</a>
+      <li><a href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination">TimeSeries.Contamination (class in imputegap.recovery.manager)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -656,7 +668,7 @@ <h2 id="Z">Z</h2>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.algorithm_parameters.html b/docs/generation/build/html/imputegap.algorithm_parameters.html
index f890ace7..503394d9 100644
--- a/docs/generation/build/html/imputegap.algorithm_parameters.html
+++ b/docs/generation/build/html/imputegap.algorithm_parameters.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools.algorithm_parameters package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools.algorithm_parameters package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -116,7 +116,7 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.algorithms.html b/docs/generation/build/html/imputegap.algorithms.html
index fefb5c58..56a572e5 100644
--- a/docs/generation/build/html/imputegap.algorithms.html
+++ b/docs/generation/build/html/imputegap.algorithms.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Submodules &mdash; imputegap 1.0.2 documentation</title>
+  <title>Submodules &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -108,7 +108,7 @@ <h1>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.benchmarking.html b/docs/generation/build/html/imputegap.benchmark.html
similarity index 60%
rename from docs/generation/build/html/imputegap.benchmarking.html
rename to docs/generation/build/html/imputegap.benchmark.html
index 0b2d1885..ff5b9768 100644
--- a/docs/generation/build/html/imputegap.benchmarking.html
+++ b/docs/generation/build/html/imputegap.benchmark.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.benchmarking package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.benchmark package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,14 +15,12 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
-    <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="imputegap.algorithms.cdrec package" href="imputegap.cdrec.html" />
-    <link rel="prev" title="imputegap.recovery.explainer package" href="imputegap.explainer.html" /> 
+    <link rel="search" title="Search" href="search.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -51,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -61,35 +59,8 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.zero_impute.html">imputegap.algorithms.zero_impute</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.tools.utils.html">imputegap.tools.utils</a></li>
 </ul>
-<ul class="current">
-<li class="toctree-l1 current"><a class="reference internal" href="imputegap.html">imputegap package</a><ul class="current">
-<li class="toctree-l2 current"><a class="reference internal" href="imputegap.html#subpackages">Subpackages</a><ul class="current">
-<li class="toctree-l3"><a class="reference internal" href="imputegap.manager.html">imputegap.recovery.manager package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3 current"><a class="current reference internal" href="#">imputegap.recovery.benchmarking package</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="#submodules">Submodules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#module-imputegap.recovery.benchmarking">Modules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#submodule-documentation">Submodule Documentation</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#module-0">imputegap.recovery.evaluation module</a></li>
-</ul>
-</li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.mrnn.html">imputegap.algorithms.mrnn package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.mean_impute.html">imputegap.algorithms.mean_impute package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.min_impute.html">imputegap.algorithms.min_impute package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.zero_impute.html">imputegap.algorithms.zero_impute package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.utils.html">imputegap.tools.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.evaluation.html">imputegap.recovery.evaluation package</a></li>
-</ul>
-</li>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.html#module-imputegap">Module contents</a></li>
-</ul>
-</li>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="imputegap.html">imputegap package</a></li>
 </ul>
 
         </div>
@@ -106,10 +77,9 @@
           <div role="navigation" aria-label="Page navigation">
   <ul class="wy-breadcrumbs">
       <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
-          <li class="breadcrumb-item"><a href="imputegap.html">imputegap package</a></li>
-      <li class="breadcrumb-item active">imputegap.recovery.benchmarking package</li>
+      <li class="breadcrumb-item active">imputegap.recovery.benchmark package</li>
       <li class="wy-breadcrumbs-aside">
-              <a href="https://github.com/qnater/https://github.com/eXascaleInfolab/ImputeGAP/blob/https://github.com/eXascaleInfolab/ImputeGAPimputegap.benchmarking.rst" class="fa fa-github"> Edit on GitHub</a>
+              <a href="https://github.com/qnater/https://github.com/eXascaleInfolab/ImputeGAP/blob/https://github.com/eXascaleInfolab/ImputeGAPimputegap.benchmark.rst" class="fa fa-github"> Edit on GitHub</a>
       </li>
   </ul>
   <hr/>
@@ -117,9 +87,9 @@
           <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
            <div itemprop="articleBody">
              
-  <section id="imputegap-recovery-benchmarking-package">
-<h1>imputegap.recovery.benchmarking package<a class="headerlink" href="#imputegap-recovery-benchmarking-package" title="Link to this heading"></a></h1>
-<p>The <cite>imputegap.recovery.benchmarking</cite> package provides various utility functions and tools for test the library</p>
+  <section id="imputegap-recovery-benchmark-package">
+<h1>imputegap.recovery.benchmark package<a class="headerlink" href="#imputegap-recovery-benchmark-package" title="Link to this heading"></a></h1>
+<p>The <cite>imputegap.recovery.benchmark</cite> package provides various utility functions and tools for test the library</p>
 <section id="submodules">
 <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
 <table class="autosummary longtable docutils align-default">
@@ -127,17 +97,23 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </tbody>
 </table>
 </section>
-<section id="module-imputegap.recovery.benchmarking">
-<span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.recovery.benchmarking" title="Link to this heading"></a></h2>
+<section id="module-imputegap.recovery.benchmark">
+<span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.recovery.benchmark" title="Link to this heading"></a></h2>
 <dl class="py class">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.benchmarking.</span></span><span class="sig-name descname"><span class="pre">Benchmarking</span></span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.benchmark.</span></span><span class="sig-name descname"><span class="pre">Benchmark</span></span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
-<p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and scenarios.</p>
+<p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and patterns.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
 <span class="sig-name descname"><span class="pre">_config_optimization():</span></span></dt>
-<dd><p>Configure and execute optimization for a selected imputation algorithm and contamination scenario.</p>
+<dd><p>Configure and execute optimization for a selected imputation algorithm and contamination pattern.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">average_runs_by_names(self,</span> <span class="pre">data):</span></span></dt>
+<dd><p>Average the results of all runs depending on the dataset.</p>
 </dd></dl>
 
 <dl class="py method">
@@ -148,66 +124,91 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">generate_matrix():</span></span></dt>
+<span class="sig-name descname"><span class="pre">generate_heatmap():</span></span></dt>
 <dd><p>Generate and save a heatmap visualization of RMSE scores for datasets and algorithms.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">generate_reports():</span></span></dt>
+<span class="sig-name descname"><span class="pre">generate_reports_txt():</span></span></dt>
 <dd><p>Create detailed text-based reports summarizing metrics and timing results for all evaluations.</p>
 </dd></dl>
 
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">generate_reports_excel():</span></span></dt>
+<dd><p>Create detailed excel-based reports summarizing metrics and timing results for all evaluations.</p>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py">
 <span class="sig-name descname"><span class="pre">generate_plots():</span></span></dt>
-<dd><p>Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across scenarios and datasets.</p>
+<dd><p>Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across patterns and datasets.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">comprehensive_evaluation():</span></span></dt>
+<span class="sig-name descname"><span class="pre">eval():</span></span></dt>
 <dd><p>Perform a complete benchmarking pipeline, including contamination, imputation, evaluation, and reporting.</p>
 </dd></dl>
 
 <p class="rubric">Example</p>
 <p>output : {‘drift’: {‘mcar’: {‘mean’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.9234927128429051, ‘MAE’: 0.7219362152785619, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.0010309219360351562, ‘optimization’: 0, ‘imputation’: 0.0005755424499511719}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.9699990038879407, ‘MAE’: 0.7774057495176013, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.0020699501037597656, ‘optimization’: 0, ‘imputation’: 0.00048422813415527344}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.9914069853975623, ‘MAE’: 0.8134840739732964, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.007096290588378906, ‘optimization’: 0, ‘imputation’: 0.000461578369140625}}, ‘0.4’: {‘scores’: {‘RMSE’: 1.0552448338389784, ‘MAE’: 0.7426695186604741, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.043192148208618164, ‘optimization’: 0, ‘imputation’: 0.0005095005035400391}}, ‘0.6’: {‘scores’: {‘RMSE’: 1.0143105930114702, ‘MAE’: 0.7610548321723654, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.17184901237487793, ‘optimization’: 0, ‘imputation’: 0.0005536079406738281}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.010712060535523, ‘MAE’: 0.7641520748788702, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.6064670085906982, ‘optimization’: 0, ‘imputation’: 0.0005743503570556641}}}}, ‘cdrec’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.23303624184873978, ‘MAE’: 0.13619797235197734, ‘MI’: 1.2739817718416822, ‘CORRELATION’: 0.968435455112644}, ‘times’: {‘contamination’: 0.0009615421295166016, ‘optimization’: 0, ‘imputation’: 0.09218788146972656}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.18152059329152104, ‘MAE’: 0.09925566629402761, ‘MI’: 1.1516089897042538, ‘CORRELATION’: 0.9829398352220718}, ‘times’: {‘contamination’: 0.00482487678527832, ‘optimization’: 0, ‘imputation’: 0.09549617767333984}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.13894771223733138, ‘MAE’: 0.08459032692102293, ‘MI’: 1.186191167936035, ‘CORRELATION’: 0.9901338133811375}, ‘times’: {‘contamination’: 0.01713728904724121, ‘optimization’: 0, ‘imputation’: 0.1129295825958252}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.7544523683503829, ‘MAE’: 0.11218049973594252, ‘MI’: 0.021165172206064526, ‘CORRELATION’: 0.814120507570725}, ‘times’: {‘contamination’: 0.10881781578063965, ‘optimization’: 0, ‘imputation’: 1.9378046989440918}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.4355197572001326, ‘MAE’: 0.1380846624733049, ‘MI’: 0.10781252370591506, ‘CORRELATION’: 0.9166777087122915}, ‘times’: {‘contamination’: 0.2380077838897705, ‘optimization’: 0, ‘imputation’: 1.8785057067871094}}, ‘0.8’: {‘scores’: {‘RMSE’: 0.7672558930795506, ‘MAE’: 0.32988968428439397, ‘MI’: 0.013509125598802707, ‘CORRELATION’: 0.7312998041323675}, ‘times’: {‘contamination’: 0.6805167198181152, ‘optimization’: 0, ‘imputation’: 1.9562773704528809}}}}, ‘stmvl’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.5434405584289141, ‘MAE’: 0.346560495723809, ‘MI’: 0.7328867182584357, ‘CORRELATION’: 0.8519431955571422}, ‘times’: {‘contamination’: 0.0022056102752685547, ‘optimization’: 0, ‘imputation’: 52.07010293006897}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.39007056542870916, ‘MAE’: 0.2753022759369617, ‘MI’: 0.8280959876205578, ‘CORRELATION’: 0.9180937736429735}, ‘times’: {‘contamination’: 0.002231597900390625, ‘optimization’: 0, ‘imputation’: 52.543020248413086}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.37254427425455994, ‘MAE’: 0.2730547993858495, ‘MI’: 0.7425412593844177, ‘CORRELATION’: 0.9293322959355041}, ‘times’: {‘contamination’: 0.0072672367095947266, ‘optimization’: 0, ‘imputation’: 52.88247036933899}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.6027573766269363, ‘MAE’: 0.34494332493982044, ‘MI’: 0.11876685901414151, ‘CORRELATION’: 0.8390532279447225}, ‘times’: {‘contamination’: 0.04321551322937012, ‘optimization’: 0, ‘imputation’: 54.10793352127075}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.9004526656857551, ‘MAE’: 0.4924048353228427, ‘MI’: 0.011590260996247858, ‘CORRELATION’: 0.5650541301828254}, ‘times’: {‘contamination’: 0.1728806495666504, ‘optimization’: 0, ‘imputation’: 40.53373336791992}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.0112488396023014, ‘MAE’: 0.7646823531588104, ‘MI’: 0.00040669209664367576, ‘CORRELATION’: 0.0183962968474991}, ‘times’: {‘contamination’: 0.6077785491943359, ‘optimization’: 0, ‘imputation’: 35.151907444000244}}}}, ‘iim’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.4445625930776235, ‘MAE’: 0.2696133927362288, ‘MI’: 1.1167751522591498, ‘CORRELATION’: 0.8944975075266335}, ‘times’: {‘contamination’: 0.0010058879852294922, ‘optimization’: 0, ‘imputation’: 0.7380530834197998}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.2939506418814281, ‘MAE’: 0.16953644212278182, ‘MI’: 1.0160968166750064, ‘CORRELATION’: 0.9531900627237018}, ‘times’: {‘contamination’: 0.0019745826721191406, ‘optimization’: 0, ‘imputation’: 4.7826457023620605}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.2366529609250008, ‘MAE’: 0.14709529129218185, ‘MI’: 1.064299483512458, ‘CORRELATION’: 0.9711348247027318}, ‘times’: {‘contamination’: 0.00801849365234375, ‘optimization’: 0, ‘imputation’: 33.94813060760498}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.4155649406397416, ‘MAE’: 0.22056702659999994, ‘MI’: 0.06616526470761779, ‘CORRELATION’: 0.919934494058292}, ‘times’: {‘contamination’: 0.04391813278198242, ‘optimization’: 0, ‘imputation’: 255.31524085998535}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.38695094864012947, ‘MAE’: 0.24340565131372927, ‘MI’: 0.06361822797740405, ‘CORRELATION’: 0.9249744935121553}, ‘times’: {‘contamination’: 0.17044353485107422, ‘optimization’: 0, ‘imputation’: 840.7470128536224}}, ‘0.8’: {‘scores’: {‘RMSE’: 0.5862696375344495, ‘MAE’: 0.3968159514130716, ‘MI’: 0.13422239939628303, ‘CORRELATION’: 0.8178796825899766}, ‘times’: {‘contamination’: 0.5999574661254883, ‘optimization’: 0, ‘imputation’: 1974.6101157665253}}}}, ‘mrnn’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.9458508648057621, ‘MAE’: 0.7019459696903068, ‘MI’: 0.11924522547609226, ‘CORRELATION’: 0.02915935932568557}, ‘times’: {‘contamination’: 0.001056671142578125, ‘optimization’: 0, ‘imputation’: 49.42237901687622}}, ‘0.1’: {‘scores’: {‘RMSE’: 1.0125309431502871, ‘MAE’: 0.761136543268339, ‘MI’: 0.12567590499764303, ‘CORRELATION’: -0.037161060882302754}, ‘times’: {‘contamination’: 0.003415822982788086, ‘optimization’: 0, ‘imputation’: 49.04829454421997}}, ‘0.2’: {‘scores’: {‘RMSE’: 1.0317754516097355, ‘MAE’: 0.7952869439926, ‘MI’: 0.10908095436833125, ‘CORRELATION’: -0.04155403791391449}, ‘times’: {‘contamination’: 0.007429599761962891, ‘optimization’: 0, ‘imputation’: 49.42568325996399}}, ‘0.4’: {‘scores’: {‘RMSE’: 1.0807965786089415, ‘MAE’: 0.7326965517264863, ‘MI’: 0.006171770470542263, ‘CORRELATION’: -0.020630168509677818}, ‘times’: {‘contamination’: 0.042899370193481445, ‘optimization’: 0, ‘imputation’: 49.479795694351196}}, ‘0.6’: {‘scores’: {‘RMSE’: 1.0441472017887297, ‘MAE’: 0.7599852461729673, ‘MI’: 0.01121013333181846, ‘CORRELATION’: -0.007513931343350665}, ‘times’: {‘contamination’: 0.17329692840576172, ‘optimization’: 0, ‘imputation’: 50.439927101135254}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.0379347892718205, ‘MAE’: 0.757440007226372, ‘MI’: 0.0035880775657246428, ‘CORRELATION’: -0.0014975078469404196}, ‘times’: {‘contamination’: 0.6166613101959229, ‘optimization’: 0, ‘imputation’: 50.66455388069153}}}}}}}</p>
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking.avg_results">
-<span class="sig-name descname"><span class="pre">avg_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">datasets</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.avg_results"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking.avg_results" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.average_runs_by_names">
+<span class="sig-name descname"><span class="pre">average_runs_by_names</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.average_runs_by_names"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.average_runs_by_names" title="Link to this definition"></a></dt>
+<dd><p>Average the results of all runs depending on the dataset</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>data</strong> (<em>list</em>) – list of dictionary containing the results of the benchmark runs.</p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>list of dictionary containing the results of the benchmark runs averaged by datasets.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>list</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.avg_results">
+<span class="sig-name descname"><span class="pre">avg_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">datasets</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.avg_results"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.avg_results" title="Link to this definition"></a></dt>
 <dd><p>Calculate the average of all metrics and times across multiple datasets.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><p><strong>datasets</strong> (<em>dict</em>) – Multiple dataset dictionaries to be averaged.</p>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p>Dictionary with averaged scores and times for all levels.</p>
+<dd class="field-even"><p>Matrix with averaged scores and times for all levels, list of algorithms, list of datasets</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
-<dd class="field-odd"><p>dict</p>
+<dd class="field-odd"><p>List</p>
 </dd>
 </dl>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation">
-<span class="sig-name descname"><span class="pre">comprehensive_evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">datasets</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optimizers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scenarios</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_axis</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[0.05,</span> <span class="pre">0.1,</span> <span class="pre">0.2,</span> <span class="pre">0.4,</span> <span class="pre">0.6,</span> <span class="pre">0.8]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">already_optimized</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reports</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.comprehensive_evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation" title="Link to this definition"></a></dt>
-<dd><p>Execute a comprehensive evaluation of imputation algorithms over multiple datasets and scenarios.</p>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.eval">
+<span class="sig-name descname"><span class="pre">eval</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['cdrec']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasets</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['eeg-alcohol']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">patterns</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['mcar']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_axis</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[0.05,</span> <span class="pre">0.1,</span> <span class="pre">0.2,</span> <span class="pre">0.4,</span> <span class="pre">0.6,</span> <span class="pre">0.8]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optimizers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['user_def']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">runs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.eval"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.eval" title="Link to this definition"></a></dt>
+<dd><p>Execute a comprehensive evaluation of imputation algorithms over multiple datasets and patterns.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>datasets</strong> (<em>list</em><em> of </em><em>str</em>) – List of dataset names to evaluate.</p></li>
-<li><p><strong>optimizers</strong> (<em>list</em><em> of </em><em>dict</em>) – List of optimizers with their configurations.</p></li>
 <li><p><strong>algorithms</strong> (<em>list</em><em> of </em><em>str</em>) – List of imputation algorithms to test.</p></li>
-<li><p><strong>scenarios</strong> (<em>list</em><em> of </em><em>str</em>) – List of contamination scenarios to apply.</p></li>
+<li><p><strong>datasets</strong> (<em>list</em><em> of </em><em>str</em>) – List of dataset names to evaluate.</p></li>
+<li><p><strong>patterns</strong> (<em>list</em><em> of </em><em>str</em>) – List of contamination patterns to apply.</p></li>
 <li><p><strong>x_axis</strong> (<em>list</em><em> of </em><em>float</em>) – List of missing rates for contamination.</p></li>
+<li><p><strong>optimizers</strong> (<em>list</em><em> of </em><em>dict</em>) – List of optimizers with their configurations.</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save reports and plots (default is “./reports”).</p></li>
-<li><p><strong>already_optimized</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, skip parameter optimization (default is False).</p></li>
-<li><p><strong>reports</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of executions with a view to averaging them</p></li>
+<li><p><strong>runs</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of executions with a view to averaging them</p></li>
 </ul>
 </dd>
-<dt class="field-even">Return type<span class="colon">:</span></dt>
-<dd class="field-even"><p>None</p>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>List of all runs results, matrix with averaged scores and times for all levels</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>List</p>
 </dd>
 </dl>
 <p class="rubric">Notes</p>
@@ -215,8 +216,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking.generate_matrix">
-<span class="sig-name descname"><span class="pre">generate_matrix</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scores_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sets</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_matrix"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking.generate_matrix" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.generate_heatmap">
+<span class="sig-name descname"><span class="pre">generate_heatmap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scores_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sets</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_heatmap"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.generate_heatmap" title="Link to this definition"></a></dt>
 <dd><p>Generate and save RMSE matrix in HD quality.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -238,15 +239,15 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking.generate_plots">
-<span class="sig-name descname"><span class="pre">generate_plots</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">s</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'M'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">v</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'N'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_plots"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking.generate_plots" title="Link to this definition"></a></dt>
-<dd><p>Generate and save plots for each metric and scenario based on provided scores.</p>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.generate_plots">
+<span class="sig-name descname"><span class="pre">generate_plots</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ticks</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subplot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_plots"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.generate_plots" title="Link to this definition"></a></dt>
+<dd><p>Generate and save plots for each metric and pattern based on provided scores.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</p></li>
-<li><p><strong>s</strong> (<em>str</em>) – display the number of series in graphs</p></li>
-<li><p><strong>v</strong> (<em>sts</em>) – display the number of values in graphs</p></li>
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
+<li><p><strong>ticks</strong> (<em>list</em><em> of </em><em>float</em>) – List of missing rates for contamination.</p></li>
+<li><p><strong>subplot</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, generates a single figure with subplots for all metrics (default is False).</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save generated plots (default is “./reports”).</p></li>
 </ul>
 </dd>
@@ -255,19 +256,39 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd>
 </dl>
 <p class="rubric">Notes</p>
-<p>Saves generated plots in <cite>save_dir</cite>, categorized by dataset, scenario, and metric.</p>
+<p>Saves generated plots in <cite>save_dir</cite>, categorized by dataset, pattern, and metric.</p>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.benchmarking.Benchmarking.generate_reports">
-<span class="sig-name descname"><span class="pre">generate_reports</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_reports"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmarking.Benchmarking.generate_reports" title="Link to this definition"></a></dt>
-<dd><p>Generate and save a text reports of metrics and timing for each dataset, algorithm, and scenario.</p>
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.generate_reports_excel">
+<span class="sig-name descname"><span class="pre">generate_reports_excel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_reports_excel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.generate_reports_excel" title="Link to this definition"></a></dt>
+<dd><p>Generate and save an Excel-like text report of metrics and timing for each dataset, algorithm, and pattern.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</p></li>
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
+<li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save the Excel-like file (default is “./reports”).</p></li>
+<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the Excel-like file name.</p></li>
+<li><p><strong>run</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of the run</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p>None</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.benchmark.Benchmark.generate_reports_txt">
+<span class="sig-name descname"><span class="pre">generate_reports_txt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_reports_txt"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.benchmark.Benchmark.generate_reports_txt" title="Link to this definition"></a></dt>
+<dd><p>Generate and save a text report of metrics and timing for each dataset, algorithm, and pattern.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save the reports file (default is “./reports”).</p></li>
-<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the reports name.</p></li>
+<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the report name.</p></li>
+<li><p><strong>run</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of the run.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -275,7 +296,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd>
 </dl>
 <p class="rubric">Notes</p>
-<p>The reports is saved in a “reports.txt” file in <cite>save_dir</cite>, organized in tabular format.</p>
+<p>The report is saved in a “report.txt” file in <cite>save_dir</cite>, organized in sections with headers and results.</p>
 </dd></dl>
 
 </dd></dl>
@@ -288,13 +309,19 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 <span id="imputegap-recovery-evaluation-module"></span><h2>imputegap.recovery.evaluation module<a class="headerlink" href="#module-0" title="Link to this heading"></a></h2>
 <dl class="py class">
 <dt class="sig sig-object py" id="id0">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.benchmarking.</span></span><span class="sig-name descname"><span class="pre">Benchmarking</span></span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.benchmark.</span></span><span class="sig-name descname"><span class="pre">Benchmark</span></span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
-<p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and scenarios.</p>
+<p>A class to evaluate the performance of imputation algorithms through benchmarking across datasets and patterns.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
 <span class="sig-name descname"><span class="pre">_config_optimization():</span></span></dt>
-<dd><p>Configure and execute optimization for a selected imputation algorithm and contamination scenario.</p>
+<dd><p>Configure and execute optimization for a selected imputation algorithm and contamination pattern.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">average_runs_by_names(self,</span> <span class="pre">data):</span></span></dt>
+<dd><p>Average the results of all runs depending on the dataset.</p>
 </dd></dl>
 
 <dl class="py method">
@@ -305,25 +332,31 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">generate_matrix():</span></span></dt>
+<span class="sig-name descname"><span class="pre">generate_heatmap():</span></span></dt>
 <dd><p>Generate and save a heatmap visualization of RMSE scores for datasets and algorithms.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">generate_reports():</span></span></dt>
+<span class="sig-name descname"><span class="pre">generate_reports_txt():</span></span></dt>
 <dd><p>Create detailed text-based reports summarizing metrics and timing results for all evaluations.</p>
 </dd></dl>
 
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">generate_reports_excel():</span></span></dt>
+<dd><p>Create detailed excel-based reports summarizing metrics and timing results for all evaluations.</p>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py">
 <span class="sig-name descname"><span class="pre">generate_plots():</span></span></dt>
-<dd><p>Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across scenarios and datasets.</p>
+<dd><p>Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across patterns and datasets.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">comprehensive_evaluation():</span></span></dt>
+<span class="sig-name descname"><span class="pre">eval():</span></span></dt>
 <dd><p>Perform a complete benchmarking pipeline, including contamination, imputation, evaluation, and reporting.</p>
 </dd></dl>
 
@@ -331,40 +364,59 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 <p>output : {‘drift’: {‘mcar’: {‘mean’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.9234927128429051, ‘MAE’: 0.7219362152785619, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.0010309219360351562, ‘optimization’: 0, ‘imputation’: 0.0005755424499511719}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.9699990038879407, ‘MAE’: 0.7774057495176013, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.0020699501037597656, ‘optimization’: 0, ‘imputation’: 0.00048422813415527344}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.9914069853975623, ‘MAE’: 0.8134840739732964, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.007096290588378906, ‘optimization’: 0, ‘imputation’: 0.000461578369140625}}, ‘0.4’: {‘scores’: {‘RMSE’: 1.0552448338389784, ‘MAE’: 0.7426695186604741, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.043192148208618164, ‘optimization’: 0, ‘imputation’: 0.0005095005035400391}}, ‘0.6’: {‘scores’: {‘RMSE’: 1.0143105930114702, ‘MAE’: 0.7610548321723654, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.17184901237487793, ‘optimization’: 0, ‘imputation’: 0.0005536079406738281}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.010712060535523, ‘MAE’: 0.7641520748788702, ‘MI’: 0.0, ‘CORRELATION’: 0}, ‘times’: {‘contamination’: 0.6064670085906982, ‘optimization’: 0, ‘imputation’: 0.0005743503570556641}}}}, ‘cdrec’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.23303624184873978, ‘MAE’: 0.13619797235197734, ‘MI’: 1.2739817718416822, ‘CORRELATION’: 0.968435455112644}, ‘times’: {‘contamination’: 0.0009615421295166016, ‘optimization’: 0, ‘imputation’: 0.09218788146972656}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.18152059329152104, ‘MAE’: 0.09925566629402761, ‘MI’: 1.1516089897042538, ‘CORRELATION’: 0.9829398352220718}, ‘times’: {‘contamination’: 0.00482487678527832, ‘optimization’: 0, ‘imputation’: 0.09549617767333984}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.13894771223733138, ‘MAE’: 0.08459032692102293, ‘MI’: 1.186191167936035, ‘CORRELATION’: 0.9901338133811375}, ‘times’: {‘contamination’: 0.01713728904724121, ‘optimization’: 0, ‘imputation’: 0.1129295825958252}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.7544523683503829, ‘MAE’: 0.11218049973594252, ‘MI’: 0.021165172206064526, ‘CORRELATION’: 0.814120507570725}, ‘times’: {‘contamination’: 0.10881781578063965, ‘optimization’: 0, ‘imputation’: 1.9378046989440918}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.4355197572001326, ‘MAE’: 0.1380846624733049, ‘MI’: 0.10781252370591506, ‘CORRELATION’: 0.9166777087122915}, ‘times’: {‘contamination’: 0.2380077838897705, ‘optimization’: 0, ‘imputation’: 1.8785057067871094}}, ‘0.8’: {‘scores’: {‘RMSE’: 0.7672558930795506, ‘MAE’: 0.32988968428439397, ‘MI’: 0.013509125598802707, ‘CORRELATION’: 0.7312998041323675}, ‘times’: {‘contamination’: 0.6805167198181152, ‘optimization’: 0, ‘imputation’: 1.9562773704528809}}}}, ‘stmvl’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.5434405584289141, ‘MAE’: 0.346560495723809, ‘MI’: 0.7328867182584357, ‘CORRELATION’: 0.8519431955571422}, ‘times’: {‘contamination’: 0.0022056102752685547, ‘optimization’: 0, ‘imputation’: 52.07010293006897}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.39007056542870916, ‘MAE’: 0.2753022759369617, ‘MI’: 0.8280959876205578, ‘CORRELATION’: 0.9180937736429735}, ‘times’: {‘contamination’: 0.002231597900390625, ‘optimization’: 0, ‘imputation’: 52.543020248413086}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.37254427425455994, ‘MAE’: 0.2730547993858495, ‘MI’: 0.7425412593844177, ‘CORRELATION’: 0.9293322959355041}, ‘times’: {‘contamination’: 0.0072672367095947266, ‘optimization’: 0, ‘imputation’: 52.88247036933899}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.6027573766269363, ‘MAE’: 0.34494332493982044, ‘MI’: 0.11876685901414151, ‘CORRELATION’: 0.8390532279447225}, ‘times’: {‘contamination’: 0.04321551322937012, ‘optimization’: 0, ‘imputation’: 54.10793352127075}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.9004526656857551, ‘MAE’: 0.4924048353228427, ‘MI’: 0.011590260996247858, ‘CORRELATION’: 0.5650541301828254}, ‘times’: {‘contamination’: 0.1728806495666504, ‘optimization’: 0, ‘imputation’: 40.53373336791992}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.0112488396023014, ‘MAE’: 0.7646823531588104, ‘MI’: 0.00040669209664367576, ‘CORRELATION’: 0.0183962968474991}, ‘times’: {‘contamination’: 0.6077785491943359, ‘optimization’: 0, ‘imputation’: 35.151907444000244}}}}, ‘iim’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.4445625930776235, ‘MAE’: 0.2696133927362288, ‘MI’: 1.1167751522591498, ‘CORRELATION’: 0.8944975075266335}, ‘times’: {‘contamination’: 0.0010058879852294922, ‘optimization’: 0, ‘imputation’: 0.7380530834197998}}, ‘0.1’: {‘scores’: {‘RMSE’: 0.2939506418814281, ‘MAE’: 0.16953644212278182, ‘MI’: 1.0160968166750064, ‘CORRELATION’: 0.9531900627237018}, ‘times’: {‘contamination’: 0.0019745826721191406, ‘optimization’: 0, ‘imputation’: 4.7826457023620605}}, ‘0.2’: {‘scores’: {‘RMSE’: 0.2366529609250008, ‘MAE’: 0.14709529129218185, ‘MI’: 1.064299483512458, ‘CORRELATION’: 0.9711348247027318}, ‘times’: {‘contamination’: 0.00801849365234375, ‘optimization’: 0, ‘imputation’: 33.94813060760498}}, ‘0.4’: {‘scores’: {‘RMSE’: 0.4155649406397416, ‘MAE’: 0.22056702659999994, ‘MI’: 0.06616526470761779, ‘CORRELATION’: 0.919934494058292}, ‘times’: {‘contamination’: 0.04391813278198242, ‘optimization’: 0, ‘imputation’: 255.31524085998535}}, ‘0.6’: {‘scores’: {‘RMSE’: 0.38695094864012947, ‘MAE’: 0.24340565131372927, ‘MI’: 0.06361822797740405, ‘CORRELATION’: 0.9249744935121553}, ‘times’: {‘contamination’: 0.17044353485107422, ‘optimization’: 0, ‘imputation’: 840.7470128536224}}, ‘0.8’: {‘scores’: {‘RMSE’: 0.5862696375344495, ‘MAE’: 0.3968159514130716, ‘MI’: 0.13422239939628303, ‘CORRELATION’: 0.8178796825899766}, ‘times’: {‘contamination’: 0.5999574661254883, ‘optimization’: 0, ‘imputation’: 1974.6101157665253}}}}, ‘mrnn’: {‘bayesian’: {‘0.05’: {‘scores’: {‘RMSE’: 0.9458508648057621, ‘MAE’: 0.7019459696903068, ‘MI’: 0.11924522547609226, ‘CORRELATION’: 0.02915935932568557}, ‘times’: {‘contamination’: 0.001056671142578125, ‘optimization’: 0, ‘imputation’: 49.42237901687622}}, ‘0.1’: {‘scores’: {‘RMSE’: 1.0125309431502871, ‘MAE’: 0.761136543268339, ‘MI’: 0.12567590499764303, ‘CORRELATION’: -0.037161060882302754}, ‘times’: {‘contamination’: 0.003415822982788086, ‘optimization’: 0, ‘imputation’: 49.04829454421997}}, ‘0.2’: {‘scores’: {‘RMSE’: 1.0317754516097355, ‘MAE’: 0.7952869439926, ‘MI’: 0.10908095436833125, ‘CORRELATION’: -0.04155403791391449}, ‘times’: {‘contamination’: 0.007429599761962891, ‘optimization’: 0, ‘imputation’: 49.42568325996399}}, ‘0.4’: {‘scores’: {‘RMSE’: 1.0807965786089415, ‘MAE’: 0.7326965517264863, ‘MI’: 0.006171770470542263, ‘CORRELATION’: -0.020630168509677818}, ‘times’: {‘contamination’: 0.042899370193481445, ‘optimization’: 0, ‘imputation’: 49.479795694351196}}, ‘0.6’: {‘scores’: {‘RMSE’: 1.0441472017887297, ‘MAE’: 0.7599852461729673, ‘MI’: 0.01121013333181846, ‘CORRELATION’: -0.007513931343350665}, ‘times’: {‘contamination’: 0.17329692840576172, ‘optimization’: 0, ‘imputation’: 50.439927101135254}}, ‘0.8’: {‘scores’: {‘RMSE’: 1.0379347892718205, ‘MAE’: 0.757440007226372, ‘MI’: 0.0035880775657246428, ‘CORRELATION’: -0.0014975078469404196}, ‘times’: {‘contamination’: 0.6166613101959229, ‘optimization’: 0, ‘imputation’: 50.66455388069153}}}}}}}</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="id1">
-<span class="sig-name descname"><span class="pre">avg_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">datasets</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.avg_results"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">average_runs_by_names</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.average_runs_by_names"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
+<dd><p>Average the results of all runs depending on the dataset</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><p><strong>data</strong> (<em>list</em>) – list of dictionary containing the results of the benchmark runs.</p>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>list of dictionary containing the results of the benchmark runs averaged by datasets.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>list</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="id2">
+<span class="sig-name descname"><span class="pre">avg_results</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">datasets</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.avg_results"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
 <dd><p>Calculate the average of all metrics and times across multiple datasets.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><p><strong>datasets</strong> (<em>dict</em>) – Multiple dataset dictionaries to be averaged.</p>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p>Dictionary with averaged scores and times for all levels.</p>
+<dd class="field-even"><p>Matrix with averaged scores and times for all levels, list of algorithms, list of datasets</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
-<dd class="field-odd"><p>dict</p>
+<dd class="field-odd"><p>List</p>
 </dd>
 </dl>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id2">
-<span class="sig-name descname"><span class="pre">comprehensive_evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">datasets</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optimizers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">scenarios</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_axis</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[0.05,</span> <span class="pre">0.1,</span> <span class="pre">0.2,</span> <span class="pre">0.4,</span> <span class="pre">0.6,</span> <span class="pre">0.8]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">already_optimized</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reports</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.comprehensive_evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
-<dd><p>Execute a comprehensive evaluation of imputation algorithms over multiple datasets and scenarios.</p>
+<dt class="sig sig-object py" id="id3">
+<span class="sig-name descname"><span class="pre">eval</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithms</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['cdrec']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">datasets</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['eeg-alcohol']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">patterns</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['mcar']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_axis</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">[0.05,</span> <span class="pre">0.1,</span> <span class="pre">0.2,</span> <span class="pre">0.4,</span> <span class="pre">0.6,</span> <span class="pre">0.8]</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">optimizers</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['user_def']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">runs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.eval"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id3" title="Link to this definition"></a></dt>
+<dd><p>Execute a comprehensive evaluation of imputation algorithms over multiple datasets and patterns.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>datasets</strong> (<em>list</em><em> of </em><em>str</em>) – List of dataset names to evaluate.</p></li>
-<li><p><strong>optimizers</strong> (<em>list</em><em> of </em><em>dict</em>) – List of optimizers with their configurations.</p></li>
 <li><p><strong>algorithms</strong> (<em>list</em><em> of </em><em>str</em>) – List of imputation algorithms to test.</p></li>
-<li><p><strong>scenarios</strong> (<em>list</em><em> of </em><em>str</em>) – List of contamination scenarios to apply.</p></li>
+<li><p><strong>datasets</strong> (<em>list</em><em> of </em><em>str</em>) – List of dataset names to evaluate.</p></li>
+<li><p><strong>patterns</strong> (<em>list</em><em> of </em><em>str</em>) – List of contamination patterns to apply.</p></li>
 <li><p><strong>x_axis</strong> (<em>list</em><em> of </em><em>float</em>) – List of missing rates for contamination.</p></li>
+<li><p><strong>optimizers</strong> (<em>list</em><em> of </em><em>dict</em>) – List of optimizers with their configurations.</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save reports and plots (default is “./reports”).</p></li>
-<li><p><strong>already_optimized</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, skip parameter optimization (default is False).</p></li>
-<li><p><strong>reports</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of executions with a view to averaging them</p></li>
+<li><p><strong>runs</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of executions with a view to averaging them</p></li>
 </ul>
 </dd>
-<dt class="field-even">Return type<span class="colon">:</span></dt>
-<dd class="field-even"><p>None</p>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>List of all runs results, matrix with averaged scores and times for all levels</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>List</p>
 </dd>
 </dl>
 <p class="rubric">Notes</p>
@@ -372,8 +424,8 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id3">
-<span class="sig-name descname"><span class="pre">generate_matrix</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scores_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sets</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_matrix"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id3" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="id4">
+<span class="sig-name descname"><span class="pre">generate_heatmap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">scores_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sets</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_heatmap"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id4" title="Link to this definition"></a></dt>
 <dd><p>Generate and save RMSE matrix in HD quality.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
@@ -395,15 +447,15 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id4">
-<span class="sig-name descname"><span class="pre">generate_plots</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">s</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'M'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">v</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'N'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_plots"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id4" title="Link to this definition"></a></dt>
-<dd><p>Generate and save plots for each metric and scenario based on provided scores.</p>
+<dt class="sig sig-object py" id="id5">
+<span class="sig-name descname"><span class="pre">generate_plots</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ticks</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subplot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_plots"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id5" title="Link to this definition"></a></dt>
+<dd><p>Generate and save plots for each metric and pattern based on provided scores.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</p></li>
-<li><p><strong>s</strong> (<em>str</em>) – display the number of series in graphs</p></li>
-<li><p><strong>v</strong> (<em>sts</em>) – display the number of values in graphs</p></li>
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
+<li><p><strong>ticks</strong> (<em>list</em><em> of </em><em>float</em>) – List of missing rates for contamination.</p></li>
+<li><p><strong>subplot</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, generates a single figure with subplots for all metrics (default is False).</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save generated plots (default is “./reports”).</p></li>
 </ul>
 </dd>
@@ -412,19 +464,39 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd>
 </dl>
 <p class="rubric">Notes</p>
-<p>Saves generated plots in <cite>save_dir</cite>, categorized by dataset, scenario, and metric.</p>
+<p>Saves generated plots in <cite>save_dir</cite>, categorized by dataset, pattern, and metric.</p>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id5">
-<span class="sig-name descname"><span class="pre">generate_reports</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmarking.html#Benchmarking.generate_reports"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id5" title="Link to this definition"></a></dt>
-<dd><p>Generate and save a text reports of metrics and timing for each dataset, algorithm, and scenario.</p>
+<dt class="sig sig-object py" id="id6">
+<span class="sig-name descname"><span class="pre">generate_reports_excel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_reports_excel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id6" title="Link to this definition"></a></dt>
+<dd><p>Generate and save an Excel-like text report of metrics and timing for each dataset, algorithm, and pattern.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
+<li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save the Excel-like file (default is “./reports”).</p></li>
+<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the Excel-like file name.</p></li>
+<li><p><strong>run</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of the run</p></li>
+</ul>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p>None</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="id7">
+<span class="sig-name descname"><span class="pre">generate_reports_txt</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">runs_plots_scores</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_dir</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'./reports'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dataset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">run</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/benchmark.html#Benchmark.generate_reports_txt"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id7" title="Link to this definition"></a></dt>
+<dd><p>Generate and save a text report of metrics and timing for each dataset, algorithm, and pattern.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</p></li>
+<li><p><strong>runs_plots_scores</strong> (<em>dict</em>) – Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</p></li>
 <li><p><strong>save_dir</strong> (<em>str</em><em>, </em><em>optional</em>) – Directory to save the reports file (default is “./reports”).</p></li>
-<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the reports name.</p></li>
+<li><p><strong>dataset</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the data for the report name.</p></li>
+<li><p><strong>run</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of the run.</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -432,7 +504,7 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd>
 </dl>
 <p class="rubric">Notes</p>
-<p>The reports is saved in a “reports.txt” file in <cite>save_dir</cite>, organized in tabular format.</p>
+<p>The report is saved in a “report.txt” file in <cite>save_dir</cite>, organized in sections with headers and results.</p>
 </dd></dl>
 
 </dd></dl>
@@ -443,15 +515,12 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 
            </div>
           </div>
-          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="imputegap.explainer.html" class="btn btn-neutral float-left" title="imputegap.recovery.explainer package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="imputegap.cdrec.html" class="btn btn-neutral float-right" title="imputegap.algorithms.cdrec package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
-    </div>
+          <footer>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.cdrec.html b/docs/generation/build/html/imputegap.cdrec.html
index 320b0fb4..8517bdc9 100644
--- a/docs/generation/build/html/imputegap.cdrec.html
+++ b/docs/generation/build/html/imputegap.cdrec.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.cdrec package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.cdrec package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,14 +15,14 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
     <link rel="next" title="imputegap.algorithms.stmvl package" href="imputegap.stmvl.html" />
-    <link rel="prev" title="imputegap.recovery.benchmarking package" href="imputegap.benchmarking.html" /> 
+    <link rel="prev" title="imputegap.recovery.explainer package" href="imputegap.explainer.html" /> 
 </head>
 
 <body class="wy-body-for-nav"> 
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">imputegap.algorithms.cdrec package</a><ul>
 <li class="toctree-l4"><a class="reference internal" href="#submodules">Submodules</a></li>
 <li class="toctree-l4"><a class="reference internal" href="#module-imputegap.algorithms.cdrec">Modules</a></li>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.cdrec" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.cdrec.cdrec">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.cdrec.</span></span><span class="sig-name descname"><span class="pre">cdrec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">truncation_rank</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">epsilon</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lib_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/cdrec.html#cdrec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.cdrec.cdrec" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.cdrec.</span></span><span class="sig-name descname"><span class="pre">cdrec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">truncation_rank</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">epsilon</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lib_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/cdrec.html#cdrec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.cdrec.cdrec" title="Link to this definition"></a></dt>
 <dd><p>CDRec algorithm for matrix imputation of missing values using Centroid Decomposition.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
 <li><p><strong>truncation_rank</strong> (<em>int</em>) – The truncation rank for matrix decomposition (must be greater than 1 and smaller than the number of series).</p></li>
 <li><p><strong>epsilon</strong> (<em>float</em>) – The learning rate (stopping criterion threshold).</p></li>
 <li><p><strong>iterations</strong> (<em>int</em>) – The maximum number of iterations allowed for the algorithm.</p></li>
@@ -146,8 +145,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd>
 </dl>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">cdrec</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="n">contamination_matrix</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">epsilon</span><span class="o">=</span><span class="mf">0.000001</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_data</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">cdrec</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span> <span class="n">epsilon</span><span class="o">=</span><span class="mf">0.000001</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 </pre></div>
 </div>
 </dd></dl>
@@ -183,14 +182,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
            </div>
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
-        <a href="imputegap.benchmarking.html" class="btn btn-neutral float-left" title="imputegap.recovery.benchmarking package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
+        <a href="imputegap.explainer.html" class="btn btn-neutral float-left" title="imputegap.recovery.explainer package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
         <a href="imputegap.stmvl.html" class="btn btn-neutral float-right" title="imputegap.algorithms.stmvl package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.evaluation.html b/docs/generation/build/html/imputegap.evaluation.html
index ab3a6dde..60fad18d 100644
--- a/docs/generation/build/html/imputegap.evaluation.html
+++ b/docs/generation/build/html/imputegap.evaluation.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.evaluation package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.evaluation package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -50,7 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -67,7 +67,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -130,12 +129,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.recovery.evaluation" title="Link to this heading"></a></h2>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.evaluation.Evaluation">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.evaluation.</span></span><span class="sig-name descname"><span class="pre">Evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.evaluation.Evaluation" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.evaluation.</span></span><span class="sig-name descname"><span class="pre">Evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.evaluation.Evaluation" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
 <p>A class to evaluate the performance of imputation algorithms by comparing imputed time series with the ground truth.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">metrics_computation():</span></span></dt>
+<span class="sig-name descname"><span class="pre">compute_all_metrics():</span></span></dt>
 <dd><p>Compute various evaluation metrics (RMSE, MAE, MI, CORRELATION) for the imputation.</p>
 </dd></dl>
 
@@ -163,6 +162,25 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <dd><p>Compute the Pearson correlation coefficient between the ground truth and the imputed values.</p>
 </dd></dl>
 
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.evaluation.Evaluation.compute_all_metrics">
+<span class="sig-name descname"><span class="pre">compute_all_metrics</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_all_metrics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.evaluation.Evaluation.compute_all_metrics" title="Link to this definition"></a></dt>
+<dd><p>Compute a set of evaluation metrics for the imputation based on the ground truth and contamination data.</p>
+<p>The metrics include RMSE, MAE, Mutual Information (MI), and Pearson Correlation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A dictionary containing the computed metrics:
+- “RMSE”: Root Mean Squared Error
+- “MAE”: Mean Absolute Error
+- “MI”: Mutual Information
+- “CORRELATION”: Pearson Correlation Coefficient</p>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p>dict</p>
+</dd>
+</dl>
+</dd></dl>
+
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.evaluation.Evaluation.compute_correlation">
 <span class="sig-name descname"><span class="pre">compute_correlation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_correlation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.evaluation.Evaluation.compute_correlation" title="Link to this definition"></a></dt>
@@ -226,25 +244,6 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dl>
 </dd></dl>
 
-<dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.evaluation.Evaluation.metrics_computation">
-<span class="sig-name descname"><span class="pre">metrics_computation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.metrics_computation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.evaluation.Evaluation.metrics_computation" title="Link to this definition"></a></dt>
-<dd><p>Compute a set of evaluation metrics for the imputation based on the ground truth and contamination data.</p>
-<p>The metrics include RMSE, MAE, Mutual Information (MI), and Pearson Correlation.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Returns<span class="colon">:</span></dt>
-<dd class="field-odd"><p>A dictionary containing the computed metrics:
-- “RMSE”: Root Mean Squared Error
-- “MAE”: Mean Absolute Error
-- “MI”: Mutual Information
-- “CORRELATION”: Pearson Correlation Coefficient</p>
-</dd>
-<dt class="field-even">Return type<span class="colon">:</span></dt>
-<dd class="field-even"><p>dict</p>
-</dd>
-</dl>
-</dd></dl>
-
 </dd></dl>
 
 </section>
@@ -255,12 +254,12 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 <span id="imputegap-recovery-evaluation-module"></span><h2>imputegap.recovery.evaluation module<a class="headerlink" href="#module-0" title="Link to this heading"></a></h2>
 <dl class="py class">
 <dt class="sig sig-object py" id="id0">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.evaluation.</span></span><span class="sig-name descname"><span class="pre">Evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputation</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.evaluation.</span></span><span class="sig-name descname"><span class="pre">Evaluation</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id0" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
 <p>A class to evaluate the performance of imputation algorithms by comparing imputed time series with the ground truth.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">metrics_computation():</span></span></dt>
+<span class="sig-name descname"><span class="pre">compute_all_metrics():</span></span></dt>
 <dd><p>Compute various evaluation metrics (RMSE, MAE, MI, CORRELATION) for the imputation.</p>
 </dd></dl>
 
@@ -290,7 +289,26 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 
 <dl class="py method">
 <dt class="sig sig-object py" id="id1">
-<span class="sig-name descname"><span class="pre">compute_correlation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_correlation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">compute_all_metrics</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_all_metrics"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
+<dd><p>Compute a set of evaluation metrics for the imputation based on the ground truth and contamination data.</p>
+<p>The metrics include RMSE, MAE, Mutual Information (MI), and Pearson Correlation.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Returns<span class="colon">:</span></dt>
+<dd class="field-odd"><p>A dictionary containing the computed metrics:
+- “RMSE”: Root Mean Squared Error
+- “MAE”: Mean Absolute Error
+- “MI”: Mutual Information
+- “CORRELATION”: Pearson Correlation Coefficient</p>
+</dd>
+<dt class="field-even">Return type<span class="colon">:</span></dt>
+<dd class="field-even"><p>dict</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="id2">
+<span class="sig-name descname"><span class="pre">compute_correlation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_correlation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
 <dd><p>Compute the Pearson Correlation Coefficient between the ground truth and imputed values for NaN positions in contamination.</p>
 <p>Pearson Correlation measures the linear relationship between the ground truth and imputed values,
 with 1 being a perfect positive correlation and -1 a perfect negative correlation.</p>
@@ -305,8 +323,8 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id2">
-<span class="sig-name descname"><span class="pre">compute_mae</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_mae"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="id3">
+<span class="sig-name descname"><span class="pre">compute_mae</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_mae"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id3" title="Link to this definition"></a></dt>
 <dd><p>Compute the Mean Absolute Error (MAE) between the ground truth and imputed values for NaN positions in contamination.</p>
 <p>The MAE measures the average magnitude of the error in absolute terms, making it more robust to outliers than RMSE.</p>
 <dl class="field-list simple">
@@ -320,8 +338,8 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id3">
-<span class="sig-name descname"><span class="pre">compute_mi</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_mi"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id3" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="id4">
+<span class="sig-name descname"><span class="pre">compute_mi</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_mi"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id4" title="Link to this definition"></a></dt>
 <dd><p>Compute the Mutual Information (MI) between the ground truth and imputed values for NaN positions in contamination.</p>
 <p>MI measures the amount of shared information between the ground truth and the imputed values,
 indicating how well the imputation preserves the underlying patterns of the data.</p>
@@ -336,8 +354,8 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="id4">
-<span class="sig-name descname"><span class="pre">compute_rmse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_rmse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id4" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="id5">
+<span class="sig-name descname"><span class="pre">compute_rmse</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.compute_rmse"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id5" title="Link to this definition"></a></dt>
 <dd><p>Compute the Root Mean Squared Error (RMSE) between the ground truth and imputed values for NaN positions in contamination.</p>
 <p>The RMSE measures the average magnitude of the error between the imputed values and the ground truth,
 giving higher weight to large errors.</p>
@@ -351,25 +369,6 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
 </dl>
 </dd></dl>
 
-<dl class="py method">
-<dt class="sig sig-object py" id="id5">
-<span class="sig-name descname"><span class="pre">metrics_computation</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/evaluation.html#Evaluation.metrics_computation"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id5" title="Link to this definition"></a></dt>
-<dd><p>Compute a set of evaluation metrics for the imputation based on the ground truth and contamination data.</p>
-<p>The metrics include RMSE, MAE, Mutual Information (MI), and Pearson Correlation.</p>
-<dl class="field-list simple">
-<dt class="field-odd">Returns<span class="colon">:</span></dt>
-<dd class="field-odd"><p>A dictionary containing the computed metrics:
-- “RMSE”: Root Mean Squared Error
-- “MAE”: Mean Absolute Error
-- “MI”: Mutual Information
-- “CORRELATION”: Pearson Correlation Coefficient</p>
-</dd>
-<dt class="field-even">Return type<span class="colon">:</span></dt>
-<dd class="field-even"><p>dict</p>
-</dd>
-</dl>
-</dd></dl>
-
 </dd></dl>
 
 </section>
@@ -385,7 +384,7 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.explainer.html b/docs/generation/build/html/imputegap.explainer.html
index 68dbea0e..b3176a05 100644
--- a/docs/generation/build/html/imputegap.explainer.html
+++ b/docs/generation/build/html/imputegap.explainer.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.explainer package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.explainer package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,13 +15,13 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="imputegap.recovery.benchmarking package" href="imputegap.benchmarking.html" />
+    <link rel="next" title="imputegap.algorithms.cdrec package" href="imputegap.cdrec.html" />
     <link rel="prev" title="imputegap.recovery.optimization package" href="imputegap.optimization.html" /> 
 </head>
 
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -72,7 +72,6 @@
 <li class="toctree-l4"><a class="reference internal" href="#module-imputegap.recovery.explainer">Module contents</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -134,8 +133,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.explainer.Explainer.extract_features">
-<span class="sig-name descname"><span class="pre">extract_features</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_categories</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">do_catch24</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.extract_features"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.extract_features" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.explainer.Explainer.extractor_pycatch">
+<span class="sig-name descname"><span class="pre">extractor_pycatch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_categories</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">do_catch24</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.extractor_pycatch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.extractor_pycatch" title="Link to this definition"></a></dt>
 <dd><p>Extract features from time series data using pycatch22.</p>
 </dd></dl>
 
@@ -152,16 +151,16 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.explainer.Explainer.launch_shap_model">
-<span class="sig-name descname"><span class="pre">launch_shap_model</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_information</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splitter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.launch_shap_model"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.launch_shap_model" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.explainer.Explainer.execute_shap_model">
+<span class="sig-name descname"><span class="pre">execute_shap_model</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">x_information</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splitter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.execute_shap_model"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.execute_shap_model" title="Link to this definition"></a></dt>
 <dd><p>Launch the SHAP model to explain the dataset features.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">shap_explainer(raw_data,</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">params=None,</span> <span class="pre">contamination=&quot;mcar&quot;,</span> <span class="pre">missing_rate=0.4,</span></span></dt>
+<span class="sig-name descname"><span class="pre">shap_explainer(input_data,</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">params=None,</span> <span class="pre">extractor=&quot;pycatch22&quot;,</span> <span class="pre">incomp_data=&quot;mcar&quot;,</span></span></dt>
 <dd><blockquote>
-<div><p>block_size=10, protection=0.1, use_seed=True, seed=42, limitation=15, splitter=0,
+<div><p>missing_rate=0.4, block_size=10, offset=0.1, seed=True, limitation=15, splitter=0,
 file_name=”ts”, display=False, verbose=False)</p>
 </div></blockquote>
 <p>Handle parameters and set variables to launch the SHAP model.</p>
@@ -195,50 +194,50 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="id1">
-<span class="sig-name descname"><span class="pre">extract_features</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">features_categories</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">do_catch24</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.extract_features"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
-<dd><p>Extract features from time series data using pycatch22.</p>
+<span class="sig-name descname"><span class="pre">execute_shap_model</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x_information</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splitter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.execute_shap_model"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id1" title="Link to this definition"></a></dt>
+<dd><p>Launch the SHAP model for explaining the features of the dataset.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>data</strong> (<em>numpy.ndarray</em>) – Time series dataset for feature extraction.</p></li>
-<li><p><strong>features_categories</strong> (<em>dict</em>) – Dictionary that maps feature names to categories.</p></li>
-<li><p><strong>features_list</strong> (<em>dict</em>) – Dictionary of all features expected.</p></li>
-<li><p><strong>do_catch24</strong> (<em>bool</em><em>, </em><em>optional</em>) – Flag to compute the mean and standard deviation for Catch24 (default is True).</p></li>
+<li><p><strong>x_dataset</strong> (<em>numpy.ndarray</em>) – Dataset of feature extraction with descriptions.</p></li>
+<li><p><strong>x_information</strong> (<em>list</em>) – Descriptions of all features grouped by categories.</p></li>
+<li><p><strong>y_dataset</strong> (<em>numpy.ndarray</em>) – RMSE labels of each series.</p></li>
+<li><p><strong>file</strong> (<em>str</em>) – Dataset used for SHAP analysis.</p></li>
+<li><p><strong>algorithm</strong> (<em>str</em>) – Algorithm used for imputation (e.g., ‘cdrec’, ‘stmvl’, ‘iim’, ‘mrnn’).</p></li>
+<li><p><strong>splitter</strong> (<em>int</em><em>, </em><em>optional</em>) – Split ratio for data training and testing (default is 10).</p></li>
+<li><p><strong>display</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to display the SHAP plots (default is False).</p></li>
+<li><p><strong>verbose</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to print detailed output (default is False).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p>A tuple containing:
-- results (dict): A dictionary of feature values by feature names.
-- descriptions (list): A list of tuples containing feature names, categories, and descriptions.</p>
+<dd class="field-even"><p>Results of the SHAP explainer model.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
-<dd class="field-odd"><p>tuple</p>
+<dd class="field-odd"><p>list</p>
 </dd>
 </dl>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="id2">
-<span class="sig-name descname"><span class="pre">launch_shap_model</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">x_information</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">y_dataset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splitter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.launch_shap_model"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
-<dd><p>Launch the SHAP model for explaining the features of the dataset.</p>
+<span class="sig-name descname"><span class="pre">extractor_pycatch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">features_categories</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">features_list</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">do_catch24</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.extractor_pycatch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#id2" title="Link to this definition"></a></dt>
+<dd><p>Extract features from time series data using pycatch22.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>x_dataset</strong> (<em>numpy.ndarray</em>) – Dataset of feature extraction with descriptions.</p></li>
-<li><p><strong>x_information</strong> (<em>list</em>) – Descriptions of all features grouped by categories.</p></li>
-<li><p><strong>y_dataset</strong> (<em>numpy.ndarray</em>) – RMSE labels of each series.</p></li>
-<li><p><strong>file</strong> (<em>str</em>) – Dataset used for SHAP analysis.</p></li>
-<li><p><strong>algorithm</strong> (<em>str</em>) – Algorithm used for imputation (e.g., ‘cdrec’, ‘stmvl’, ‘iim’, ‘mrnn’).</p></li>
-<li><p><strong>splitter</strong> (<em>int</em><em>, </em><em>optional</em>) – Split ratio for data training and testing (default is 10).</p></li>
-<li><p><strong>display</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to display the SHAP plots (default is False).</p></li>
-<li><p><strong>verbose</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to print detailed output (default is False).</p></li>
+<li><p><strong>data</strong> (<em>numpy.ndarray</em>) – Time series dataset for feature extraction.</p></li>
+<li><p><strong>features_categories</strong> (<em>dict</em>) – Dictionary that maps feature names to categories.</p></li>
+<li><p><strong>features_list</strong> (<em>dict</em>) – Dictionary of all features expected.</p></li>
+<li><p><strong>do_catch24</strong> (<em>bool</em><em>, </em><em>optional</em>) – Flag to compute the mean and standard deviation for Catch24 (default is True).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p>Results of the SHAP explainer model.</p>
+<dd class="field-even"><p>A tuple containing:
+- results (dict): A dictionary of feature values by feature names.
+- descriptions (list): A list of tuples containing feature names, categories, and descriptions.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
-<dd class="field-odd"><p>list</p>
+<dd class="field-odd"><p>tuple</p>
 </dd>
 </dl>
 </dd></dl>
@@ -279,22 +278,22 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.explainer.Explainer.shap_explainer">
-<span class="sig-name descname"><span class="pre">shap_explainer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'mcar'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">protection</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">use_seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">42</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limitation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splitter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'ts'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.shap_explainer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.shap_explainer" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">shap_explainer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">extractor</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'pycatch22'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pattern</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'mcar'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.4</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit_ratio</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">split_ratio</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'ts'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">verbose</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/explainer.html#Explainer.shap_explainer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.explainer.Explainer.shap_explainer" title="Link to this definition"></a></dt>
 <dd><p>Handle parameters and set variables to launch the SHAP model.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_data</strong> (<em>numpy.ndarray</em>) – The original time series dataset.</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series dataset.</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – The algorithm used for imputation (default is ‘cdrec’). Valid values: ‘cdrec’, ‘stmvl’, ‘iim’, ‘mrnn’.</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Parameters for the algorithm.</p></li>
-<li><p><strong>contamination</strong> (<em>str</em><em>, </em><em>optional</em>) – Contamination scenario to apply (default is ‘mcar’).</p></li>
+<li><p><strong>pattern</strong> (<em>str</em><em>, </em><em>optional</em>) – Contamination pattern to apply (default is ‘mcar’).</p></li>
+<li><p><strong>extractor</strong> (<em>str</em><em>, </em><em>optional</em>) – Extractor use to get the features of the data (default is ‘pycatch22’).</p></li>
 <li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.4).</p></li>
 <li><p><strong>block_size</strong> (<em>int</em><em>, </em><em>optional</em>) – Size of the block to remove at each random position selected (default is 10).</p></li>
-<li><p><strong>protection</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the time series (default is 0.1).</p></li>
-<li><p><strong>use_seed</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use a seed for reproducibility (default is True).</p></li>
-<li><p><strong>seed</strong> (<em>int</em><em>, </em><em>optional</em>) – Seed value for reproducibility (default is 42).</p></li>
-<li><p><strong>limitation</strong> (<em>int</em><em>, </em><em>optional</em>) – Limitation on the number of series for the model (default is 15).</p></li>
-<li><p><strong>splitter</strong> (<em>int</em><em>, </em><em>optional</em>) – Limitation on the training series for the model (default is 0).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the time series (default is 0.1).</p></li>
+<li><p><strong>seed</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use a seed for reproducibility (default is True).</p></li>
+<li><p><strong>limit_ratio</strong> (<em>flaot</em><em>, </em><em>optional</em>) – Limitation on the number of series for the model (default is 1).</p></li>
+<li><p><strong>split_ratio</strong> (<em>flaot</em><em>, </em><em>optional</em>) – Limitation on the training series for the model (default is 0.6).</p></li>
 <li><p><strong>file_name</strong> (<em>str</em><em>, </em><em>optional</em>) – Name of the dataset file (default is ‘ts’).</p></li>
 <li><p><strong>display</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to display the SHAP plots (default is False).</p></li>
 <li><p><strong>verbose</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to print detailed output (default is False).</p></li>
@@ -335,13 +334,13 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
           </div>
           <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
         <a href="imputegap.optimization.html" class="btn btn-neutral float-left" title="imputegap.recovery.optimization package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
-        <a href="imputegap.benchmarking.html" class="btn btn-neutral float-right" title="imputegap.recovery.benchmarking package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
+        <a href="imputegap.cdrec.html" class="btn btn-neutral float-right" title="imputegap.algorithms.cdrec package" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
     </div>
 
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.html b/docs/generation/build/html/imputegap.html
index f81f0791..337e1402 100644
--- a/docs/generation/build/html/imputegap.html
+++ b/docs/generation/build/html/imputegap.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -120,7 +119,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
 <li class="toctree-l2"><a class="reference internal" href="imputegap.manager.html#submodules">Submodules</a></li>
 <li class="toctree-l2"><a class="reference internal" href="imputegap.manager.html#module-imputegap.recovery.manager">Module contents</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries"><code class="docutils literal notranslate"><span class="pre">TimeSeries</span></code></a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate"><code class="docutils literal notranslate"><span class="pre">TimeSeries.Contaminate</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination"><code class="docutils literal notranslate"><span class="pre">TimeSeries.Contamination</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.import_matrix"><code class="docutils literal notranslate"><span class="pre">TimeSeries.import_matrix()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.load_timeseries"><code class="docutils literal notranslate"><span class="pre">TimeSeries.load_timeseries()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.manager.html#imputegap.recovery.manager.TimeSeries.normalize"><code class="docutils literal notranslate"><span class="pre">TimeSeries.normalize()</span></code></a></li>
@@ -180,13 +179,13 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
 <li class="toctree-l2"><a class="reference internal" href="imputegap.explainer.html#module-imputegap.recovery.explainer">Module contents</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer"><code class="docutils literal notranslate"><span class="pre">Explainer</span></code></a><ul>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.load_configuration"><code class="docutils literal notranslate"><span class="pre">Explainer.load_configuration()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extract_features"><code class="docutils literal notranslate"><span class="pre">Explainer.extract_features()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extractor_pycatch"><code class="docutils literal notranslate"><span class="pre">Explainer.extractor_pycatch()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.print"><code class="docutils literal notranslate"><span class="pre">Explainer.print()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.convert_results"><code class="docutils literal notranslate"><span class="pre">Explainer.convert_results()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.launch_shap_model"><code class="docutils literal notranslate"><span class="pre">Explainer.launch_shap_model()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.execute_shap_model"><code class="docutils literal notranslate"><span class="pre">Explainer.execute_shap_model()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id0"><code class="docutils literal notranslate"><span class="pre">Explainer.convert_results()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id1"><code class="docutils literal notranslate"><span class="pre">Explainer.extract_features()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id2"><code class="docutils literal notranslate"><span class="pre">Explainer.launch_shap_model()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id1"><code class="docutils literal notranslate"><span class="pre">Explainer.execute_shap_model()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id2"><code class="docutils literal notranslate"><span class="pre">Explainer.extractor_pycatch()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id3"><code class="docutils literal notranslate"><span class="pre">Explainer.load_configuration()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#id4"><code class="docutils literal notranslate"><span class="pre">Explainer.print()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#imputegap.recovery.explainer.Explainer.shap_explainer"><code class="docutils literal notranslate"><span class="pre">Explainer.shap_explainer()</span></code></a></li>
@@ -196,33 +195,6 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
 </li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.benchmarking.html#submodules">Submodules</a></li>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.benchmarking.html#module-imputegap.recovery.benchmarking">Modules</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking"><code class="docutils literal notranslate"><span class="pre">Benchmarking</span></code></a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.avg_results"><code class="docutils literal notranslate"><span class="pre">Benchmarking.avg_results()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation"><code class="docutils literal notranslate"><span class="pre">Benchmarking.comprehensive_evaluation()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_matrix"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_matrix()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_plots"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_plots()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_reports"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_reports()</span></code></a></li>
-</ul>
-</li>
-</ul>
-</li>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.benchmarking.html#submodule-documentation">Submodule Documentation</a></li>
-<li class="toctree-l2"><a class="reference internal" href="imputegap.benchmarking.html#module-0">imputegap.recovery.evaluation module</a><ul>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html#id0"><code class="docutils literal notranslate"><span class="pre">Benchmarking</span></code></a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#id1"><code class="docutils literal notranslate"><span class="pre">Benchmarking.avg_results()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#id2"><code class="docutils literal notranslate"><span class="pre">Benchmarking.comprehensive_evaluation()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#id3"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_matrix()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#id4"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_plots()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#id5"><code class="docutils literal notranslate"><span class="pre">Benchmarking.generate_reports()</span></code></a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
 <li class="toctree-l1"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="imputegap.cdrec.html#submodules">Submodules</a></li>
 <li class="toctree-l2"><a class="reference internal" href="imputegap.cdrec.html#module-imputegap.algorithms.cdrec">Modules</a><ul>
@@ -300,11 +272,11 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
 <li class="toctree-l2"><a class="reference internal" href="imputegap.evaluation.html#submodules">Submodules</a></li>
 <li class="toctree-l2"><a class="reference internal" href="imputegap.evaluation.html#module-imputegap.recovery.evaluation">Modules</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation"><code class="docutils literal notranslate"><span class="pre">Evaluation</span></code></a><ul>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_all_metrics"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_all_metrics()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_correlation"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_correlation()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mae"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mae()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_mi"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mi()</span></code></a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_rmse"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_rmse()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.metrics_computation"><code class="docutils literal notranslate"><span class="pre">Evaluation.metrics_computation()</span></code></a></li>
 </ul>
 </li>
 </ul>
@@ -312,11 +284,11 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Link to this hea
 <li class="toctree-l2"><a class="reference internal" href="imputegap.evaluation.html#submodule-documentation">Submodule Documentation</a></li>
 <li class="toctree-l2"><a class="reference internal" href="imputegap.evaluation.html#module-0">imputegap.recovery.evaluation module</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.evaluation.html#id0"><code class="docutils literal notranslate"><span class="pre">Evaluation</span></code></a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id1"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_correlation()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id2"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mae()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id3"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mi()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id4"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_rmse()</span></code></a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id5"><code class="docutils literal notranslate"><span class="pre">Evaluation.metrics_computation()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id1"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_all_metrics()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id2"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_correlation()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id3"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mae()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id4"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_mi()</span></code></a></li>
+<li class="toctree-l4"><a class="reference internal" href="imputegap.evaluation.html#id5"><code class="docutils literal notranslate"><span class="pre">Evaluation.compute_rmse()</span></code></a></li>
 </ul>
 </li>
 </ul>
@@ -345,7 +317,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.iim.html b/docs/generation/build/html/imputegap.iim.html
index 2daac683..b3319677 100644
--- a/docs/generation/build/html/imputegap.iim.html
+++ b/docs/generation/build/html/imputegap.iim.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.iim package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.iim package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">imputegap.algorithms.iim package</a><ul>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.iim" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.iim.iim">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.iim.</span></span><span class="sig-name descname"><span class="pre">iim</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_neighbor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algo_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/iim.html#iim"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.iim.iim" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.iim.</span></span><span class="sig-name descname"><span class="pre">iim</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">number_neighbor</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algo_code</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/iim.html#iim"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.iim.iim" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the Iterative Imputation Method (IIM) algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
 <li><p><strong>number_neighbor</strong> (<em>int</em>) – The number of neighbors to use for the K-Nearest Neighbors (KNN) classifier (default is 10).</p></li>
 <li><p><strong>algo_code</strong> (<em>str</em>) – The specific action code for the IIM output. This determines the behavior of the algorithm.</p></li>
 <li><p><strong>logs</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to log the execution time (default is True).</p></li>
@@ -148,8 +147,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 Depending on the provided <cite>algo_code</cite>, different versions of the algorithm may be executed.</p>
 <p>The function logs the total execution time if <cite>logs</cite> is set to True.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">iim</span><span class="p">(</span><span class="n">contamination_matrix</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">algo_code</span><span class="o">=</span><span class="s2">&quot;iim 2&quot;</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_data</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">iim</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">algo_code</span><span class="o">=</span><span class="s2">&quot;iim 2&quot;</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -171,7 +170,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.imputation.html b/docs/generation/build/html/imputegap.imputation.html
index 122e8335..492ccd57 100644
--- a/docs/generation/build/html/imputegap.imputation.html
+++ b/docs/generation/build/html/imputegap.imputation.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.imputation package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.imputation package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -72,7 +72,6 @@
 </li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -124,7 +123,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-imputegap.recovery.imputation" title="Link to this heading"></a></h2>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.BaseImputer">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.imputation.</span></span><span class="sig-name descname"><span class="pre">BaseImputer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">imputegap.recovery.imputation.</span></span><span class="sig-name descname"><span class="pre">BaseImputer</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
 <p>Base class for imputation algorithms.</p>
 <p>This class provides common methods for imputation tasks such as scoring, parameter checking,
@@ -137,13 +136,13 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">score(raw_matrix,</span> <span class="pre">imputed_matrix=None):</span></span></dt>
+<span class="sig-name descname"><span class="pre">score(input_data,</span> <span class="pre">recov_data=None):</span></span></dt>
 <dd><p>Compute metrics for the imputed time series.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">_check_params(user_defined,</span> <span class="pre">params):</span></span></dt>
+<span class="sig-name descname"><span class="pre">_check_params(user_def,</span> <span class="pre">params):</span></span></dt>
 <dd><p>Check and format parameters for imputation.</p>
 </dd></dl>
 
@@ -155,11 +154,11 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.BaseImputer.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -190,13 +189,13 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.BaseImputer.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer.score"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#BaseImputer.score"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.BaseImputer.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -214,7 +213,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>A class containing static methods for evaluating and running imputation algorithms on time series data.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">evaluate_params(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">configuration,</span> <span class="pre">algorithm=&quot;cdrec&quot;):</span></span></dt>
+<span class="sig-name descname"><span class="pre">evaluate_params(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">configuration,</span> <span class="pre">algorithm=&quot;cdrec&quot;):</span></span></dt>
 <dd><p>Evaluate imputation performance using given parameters and algorithm.</p>
 </dd></dl>
 
@@ -231,22 +230,22 @@ <h3>Subclasses<a class="headerlink" href="#subclasses" title="Link to this headi
 </dl>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.DeepLearning.MRNN">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MRNN</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.DeepLearning.MRNN"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MRNN</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.DeepLearning.MRNN"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>MRNN class to impute missing values using Multi-directional Recurrent Neural Networks (MRNN).</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_defined=True,</span> <span class="pre">params=None):</span></span></dt>
+<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_def=True,</span> <span class="pre">params=None):</span></span></dt>
 <dd><p>Perform imputation using the MRNN algorithm.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -258,12 +257,12 @@ <h3>Subclasses<a class="headerlink" href="#subclasses" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute">
-<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_defined</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.DeepLearning.MRNN.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_def</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.DeepLearning.MRNN.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the MRNN algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>user_defined</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
+<li><p><strong>user_def</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – <p>Parameters of the MRNN algorithm, if None, default ones are loaded.</p>
 <ul>
 <li><dl class="simple">
@@ -291,18 +290,18 @@ <h3>Subclasses<a class="headerlink" href="#subclasses" title="Link to this headi
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN" title="imputegap.recovery.imputation.Imputation.DeepLearning.MRNN">MRNN</a></p>
 </dd>
 </dl>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">()</span>  <span class="c1"># default parameters for imputation &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;hidden_dim&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span> <span class="s1">&#39;learning_rate&#39;</span><span class="p">:</span><span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;iterations&#39;</span><span class="p">:</span><span class="mi">50</span><span class="p">,</span> <span class="s1">&#39;sequence_length&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">})</span>  <span class="c1"># user-defined &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;ground_truth&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">imputed_matrix</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;hidden_dim&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span> <span class="s1">&#39;learning_rate&#39;</span><span class="p">:</span><span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;iterations&#39;</span><span class="p">:</span><span class="mi">50</span><span class="p">,</span> <span class="s1">&#39;sequence_length&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">})</span>  <span class="c1"># user-defined &gt; or</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;input_data&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">mrnn_imputer</span><span class="o">.</span><span class="n">recov_data</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -318,13 +317,13 @@ <h3>Subclasses<a class="headerlink" href="#subclasses" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -362,22 +361,22 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 </dl>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CDRec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.MatrixCompletion.CDRec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CDRec</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.MatrixCompletion.CDRec"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>CDRec class to impute missing values using Centroid Decomposition (CDRec).</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_defined=True,</span> <span class="pre">params=None):</span></span></dt>
+<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_def=True,</span> <span class="pre">params=None):</span></span></dt>
 <dd><p>Perform imputation using the CDRec algorithm.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -389,12 +388,12 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute">
-<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_defined</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.MatrixCompletion.CDRec.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_def</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.MatrixCompletion.CDRec.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the CDRec algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>user_defined</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
+<li><p><strong>user_def</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – <p>Parameters of the CDRec algorithm or Auto-ML configuration, if None, default ones are loaded.</p>
 <p><strong>Algorithm parameters:</strong></p>
 <ul>
@@ -417,7 +416,7 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 <p><strong>Auto-ML parameters:</strong></p>
 <ul>
 <li><dl class="simple">
-<dt>ground_truth<span class="classifier">numpy.ndarray</span></dt><dd><p>The original time series dataset without contamination.</p>
+<dt>input_data<span class="classifier">numpy.ndarray</span></dt><dd><p>The original time series dataset without contamination.</p>
 </dd>
 </dl>
 </li>
@@ -436,7 +435,7 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 </dl>
 </li>
 <li><dl class="simple">
-<dt>selected_metrics<span class="classifier">list, optional</span></dt><dd><p>List of selected metrics to consider for optimization. Default is [“RMSE”].</p>
+<dt>metrics<span class="classifier">list, optional</span></dt><dd><p>List of selected metrics to consider for optimization. Default is [“RMSE”].</p>
 </dd>
 </dl>
 </li>
@@ -459,7 +458,7 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 </dl>
 </li>
 <li><dl class="simple">
-<dt>selected_metrics<span class="classifier">list, optional</span></dt><dd><p>List of selected metrics to consider for optimization. Default is [“RMSE”].</p>
+<dt>metrics<span class="classifier">list, optional</span></dt><dd><p>List of selected metrics to consider for optimization. Default is [“RMSE”].</p>
 </dd>
 </dl>
 </li>
@@ -523,18 +522,18 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – CDRec object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – CDRec object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec" title="imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec">CDRec</a></p>
 </dd>
 </dl>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">()</span>  <span class="c1"># default parameters for imputation &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;rank&#39;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;epsilon&#39;</span><span class="p">:</span> <span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;iterations&#39;</span><span class="p">:</span> <span class="mi">100</span><span class="p">})</span>  <span class="c1"># user-defined &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;ground_truth&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">imputed_matrix</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;rank&#39;</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39;epsilon&#39;</span><span class="p">:</span> <span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;iterations&#39;</span><span class="p">:</span> <span class="mi">100</span><span class="p">})</span>  <span class="c1"># user-defined &gt; or</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;input_data&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">cdrec_imputer</span><span class="o">.</span><span class="n">recov_data</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -548,13 +547,13 @@ <h3>Subclasses<a class="headerlink" href="#id2" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -581,22 +580,22 @@ <h3>Subclasses<a class="headerlink" href="#id3" title="Link to this heading">
 </dl>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.PatternSearch.STMVL">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">STMVL</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.PatternSearch.STMVL"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">STMVL</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.PatternSearch.STMVL"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>STMVL class to impute missing values using Spatio-Temporal Matrix Variational Learning (STMVL).</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_defined=True,</span> <span class="pre">params=None):</span></span></dt>
+<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_def=True,</span> <span class="pre">params=None):</span></span></dt>
 <dd><p>Perform imputation using the STMVL algorithm.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -608,12 +607,12 @@ <h3>Subclasses<a class="headerlink" href="#id3" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute">
-<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_defined</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.PatternSearch.STMVL.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_def</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.PatternSearch.STMVL.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the STMVL algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>user_defined</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
+<li><p><strong>user_def</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – <p>Parameters of the STMVL algorithm, if None, default ones are loaded.</p>
 <ul>
 <li><dl class="simple">
@@ -636,18 +635,18 @@ <h3>Subclasses<a class="headerlink" href="#id3" title="Link to this heading">
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL" title="imputegap.recovery.imputation.Imputation.PatternSearch.STMVL">STMVL</a></p>
 </dd>
 </dl>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">()</span>  <span class="c1"># default parameters for imputation &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;window_size&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">,</span> <span class="s1">&#39;learning_rate&#39;</span><span class="p">:</span><span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;gamma&#39;</span><span class="p">:</span><span class="mf">0.85</span><span class="p">,</span> <span class="s1">&#39;alpha&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">})</span>  <span class="c1"># user-defined  &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;ground_truth&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">imputed_matrix</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;window_size&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">,</span> <span class="s1">&#39;learning_rate&#39;</span><span class="p">:</span><span class="mf">0.01</span><span class="p">,</span> <span class="s1">&#39;gamma&#39;</span><span class="p">:</span><span class="mf">0.85</span><span class="p">,</span> <span class="s1">&#39;alpha&#39;</span><span class="p">:</span> <span class="mi">7</span><span class="p">})</span>  <span class="c1"># user-defined  &gt; or</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;input_data&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">stmvl_imputer</span><span class="o">.</span><span class="n">recov_data</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -662,13 +661,13 @@ <h3>Subclasses<a class="headerlink" href="#id3" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -697,22 +696,22 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 </dl>
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.IIM">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IIM</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.IIM"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IIM</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.IIM"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>IIM class to impute missing values using Iterative Imputation with Metric Learning (IIM).</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_defined=True,</span> <span class="pre">params=None):</span></span></dt>
+<span class="sig-name descname"><span class="pre">impute(self,</span> <span class="pre">user_def=True,</span> <span class="pre">params=None):</span></span></dt>
 <dd><p>Perform imputation using the IIM algorithm.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.IIM.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -724,12 +723,12 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.IIM.impute">
-<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_defined</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.IIM.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.impute" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user_def</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.IIM.impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.impute" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the IIM algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>user_defined</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
+<li><p><strong>user_def</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use user-defined or default parameters (default is True).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – <p>Parameters of the IIM algorithm, if None, default ones are loaded.</p>
 <ul>
 <li><dl class="simple">
@@ -747,18 +746,18 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM" title="imputegap.recovery.imputation.Imputation.Statistics.IIM">IIM</a></p>
 </dd>
 </dl>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">()</span>  <span class="c1"># default parameters for imputation &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;learning_neighbors&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">})</span>  <span class="c1"># user-defined  &gt; or</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;ground_truth&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">iim_imputer</span><span class="o">.</span><span class="n">imputed_matrix</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;learning_neighbors&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">})</span>  <span class="c1"># user-defined  &gt; or</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">iim_imputer</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;input_data&quot;</span><span class="p">:</span> <span class="n">ts_1</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="s2">&quot;optimizer&quot;</span><span class="p">:</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;n_calls&quot;</span><span class="p">:</span> <span class="mi">2</span><span class="p">}})</span>  <span class="c1"># auto-ml with bayesian</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">iim_imputer</span><span class="o">.</span><span class="n">recov_data</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -773,13 +772,13 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.IIM.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.IIM.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -792,7 +791,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MeanImpute">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MeanImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.MeanImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MeanImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.MeanImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>MeanImpute class to impute missing values with the mean value of the ground truth.</p>
 <dl class="py method">
@@ -803,11 +802,11 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -827,7 +826,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 <dd class="field-odd"><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Dictionary of algorithm parameters (default is None).</p>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute" title="imputegap.recovery.imputation.Imputation.Statistics.MinImpute">MinImpute</a></p>
@@ -842,13 +841,13 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -861,7 +860,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MinImpute">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MinImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.MinImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MinImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.MinImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>MinImpute class to impute missing values with the minimum value of the ground truth.</p>
 <dl class="py method">
@@ -872,11 +871,11 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MinImpute.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -896,7 +895,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 <dd class="field-odd"><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Dictionary of algorithm parameters (default is None).</p>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute" title="imputegap.recovery.imputation.Imputation.Statistics.MinImpute">MinImpute</a></p>
@@ -911,13 +910,13 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.MinImpute.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.MinImpute.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -930,7 +929,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py class">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ZeroImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.ZeroImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute" title="Link to this definition"></a></dt>
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ZeroImpute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.Statistics.ZeroImpute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute" title="Link to this definition"></a></dt>
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.imputation.BaseImputer" title="imputegap.recovery.imputation.BaseImputer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseImputer</span></code></a></p>
 <p>ZeroImpute class to impute missing values with zeros.</p>
 <dl class="py method">
@@ -941,11 +940,11 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.__init__">
-<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">infected_matrix</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.__init__" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.__init__" title="Link to this definition"></a></dt>
 <dd><p>Initialize the BaseImputer with an infected time series matrix.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
-<dd class="field-odd"><p><strong>infected_matrix</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
+<dd class="field-odd"><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – Matrix used during the imputation of the time series.</p>
 </dd>
 </dl>
 </dd></dl>
@@ -965,7 +964,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 <dd class="field-odd"><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Dictionary of algorithm parameters (default is None).</p>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p><strong>self</strong> – The object with <cite>imputed_matrix</cite> set.</p>
+<dd class="field-even"><p><strong>self</strong> – The object with <cite>recov_data</cite> set.</p>
 </dd>
 <dt class="field-odd">Return type<span class="colon">:</span></dt>
 <dd class="field-odd"><p><a class="reference internal" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute" title="imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute">ZeroImpute</a></p>
@@ -980,13 +979,13 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.score">
-<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_matrix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_matrix</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.score" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.score" title="Link to this definition"></a></dt>
 <dd><p>Compute evaluation metrics for the imputed time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_matrix</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>imputed_matrix</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series (default is None).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -1002,13 +1001,13 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.imputation.Imputation.evaluate_params">
-<span class="sig-name descname"><span class="pre">evaluate_params</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.evaluate_params"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.evaluate_params" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">evaluate_params</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">configuration</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/imputation.html#Imputation.evaluate_params"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.imputation.Imputation.evaluate_params" title="Link to this definition"></a></dt>
 <dd><p>Evaluate various metrics for given parameters and imputation algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The time series with contamination.</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series without contamination.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The time series with contamination.</p></li>
 <li><p><strong>configuration</strong> (<em>tuple</em>) – Tuple of the configuration of the algorithm.</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – Imputation algorithm to use. Valid values: ‘cdrec’, ‘mrnn’, ‘stmvl’, ‘iim’ (default is ‘cdrec’).</p></li>
 </ul>
@@ -1038,7 +1037,7 @@ <h3>Subclasses<a class="headerlink" href="#id4" title="Link to this heading">
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.manager.html b/docs/generation/build/html/imputegap.manager.html
index e7f1bdd9..e0309ba8 100644
--- a/docs/generation/build/html/imputegap.manager.html
+++ b/docs/generation/build/html/imputegap.manager.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.manager package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.manager package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -72,7 +72,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -167,52 +166,89 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">plot(raw_data,</span> <span class="pre">infected_data=None,</span> <span class="pre">imputed_data=None,</span> <span class="pre">title=&quot;Time</span> <span class="pre">Series</span> <span class="pre">Data&quot;,</span></span></dt>
-<dd><blockquote>
-<div><p>max_series=None, max_values=None, size=(16, 8), save_path=””, display=True) :</p>
-</div></blockquote>
-<p>Plots the time series data, including raw, contaminated, or imputed data.</p>
+<span class="sig-name descname"><span class="pre">plot(input_data,</span> <span class="pre">incomp_data=None,</span> <span class="pre">recov_data=None,</span> <span class="pre">max_series=None,</span> <span class="pre">max_values=None,</span> <span class="pre">size=(16,</span> <span class="pre">8),</span> <span class="pre">save_path=&quot;&quot;,</span> <span class="pre">display=True)</span> <span class="pre">:</span></span></dt>
+<dd><p>Plots the time series data, including raw, contaminated, or imputed data.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">Contaminate</span> <span class="pre">:</span></span></dt>
-<dd><p>Class containing methods to contaminate time series data with missing values based on different scenarios.</p>
+<span class="sig-name descname"><span class="pre">Contamination</span> <span class="pre">:</span></span></dt>
+<dd><p>Class containing methods to contaminate time series data with missing values based on different patterns.</p>
 </dd></dl>
 
 <dl class="py class">
-<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contaminate">
-<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Contaminate</span></span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contaminate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contaminate" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination">
+<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Contamination</span></span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination" title="Link to this definition"></a></dt>
 <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
-<p>Inner class to apply contamination scenarios to the time series data.</p>
+<p>Inner class to apply contamination patterns to the time series data.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">mcar(ts,</span> <span class="pre">series_impacted=0.2,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">block_size=10,</span> <span class="pre">protection=0.1,</span> <span class="pre">use_seed=True,</span> <span class="pre">seed=42,</span> <span class="pre">explainer=False)</span> <span class="pre">:</span></span></dt>
+<span class="sig-name descname"><span class="pre">mcar(ts,</span> <span class="pre">series_rate=0.2,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">block_size=10,</span> <span class="pre">offset=0.1,</span> <span class="pre">seed=True,</span> <span class="pre">explainer=False)</span> <span class="pre">:</span></span></dt>
 <dd><p>Apply Missing Completely at Random (MCAR) contamination to the time series data.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">missing_percentage(ts,</span> <span class="pre">series_impacted=0.2,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">protection=0.1)</span> <span class="pre">:</span></span></dt>
+<span class="sig-name descname"><span class="pre">missing_percentage(ts,</span> <span class="pre">series_rate=0.2,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">offset=0.1)</span> <span class="pre">:</span></span></dt>
 <dd><p>Apply missing percentage contamination to the time series data.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">blackout(ts,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">protection=0.1)</span> <span class="pre">:</span></span></dt>
+<span class="sig-name descname"><span class="pre">blackout(ts,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">offset=0.1)</span> <span class="pre">:</span></span></dt>
 <dd><p>Apply blackout contamination to the time series data.</p>
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contaminate.blackout">
-<span class="sig-name descname"><span class="pre">blackout</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">protection</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contaminate.blackout"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contaminate.blackout" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">gaussian(input_data,</span> <span class="pre">series_rate=0.2,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">std_dev=0.2,</span> <span class="pre">offset=0.1,</span> <span class="pre">seed=True):</span></span></dt>
+<dd><p>Apply Gaussian contamination to the time series data.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">def</span> <span class="pre">disjoint(input_data,</span> <span class="pre">missing_rate=0.1,</span> <span class="pre">limit=1,</span> <span class="pre">offset=0.1):</span></span></dt>
+<dd><p>Apply Disjoint contamination to the time series data.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py">
+<span class="sig-name descname"><span class="pre">def</span> <span class="pre">overlap(input_data,</span> <span class="pre">missing_rate=0.2,</span> <span class="pre">limit=1,</span> <span class="pre">shift=0.05,</span> <span class="pre">offset=0.1,):</span></span></dt>
+<dd><p>Apply Overlapping contamination to the time series data.</p>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.blackout">
+<span class="sig-name descname"><span class="pre">blackout</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.blackout"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.blackout" title="Link to this definition"></a></dt>
 <dd><p>Apply blackout contamination to the time series data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ts</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
 <li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.2).</p></li>
-<li><p><strong>protection</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The contaminated time series data.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>numpy.ndarray</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.disjoint">
+<span class="sig-name descname"><span class="pre">disjoint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.disjoint"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.disjoint" title="Link to this definition"></a></dt>
+<dd><p>Apply disjoint contamination to the time series data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
+<li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.1).</p></li>
+<li><p><strong>limit</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage expressing the limit index of the end of the contamination (default is 1: all length).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
@@ -225,19 +261,42 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contaminate.mcar">
-<span class="sig-name descname"><span class="pre">mcar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">series_impacted</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">protection</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">use_seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">42</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">explainer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contaminate.mcar"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contaminate.mcar" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.gaussian">
+<span class="sig-name descname"><span class="pre">gaussian</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">series_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">std_dev</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.gaussian"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.gaussian" title="Link to this definition"></a></dt>
+<dd><p>Apply contamination with a Gaussian distribution to the time series data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
+<li><p><strong>series_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of series to contaminate (default is 0.2).</p></li>
+<li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.2).</p></li>
+<li><p><strong>std_dev</strong> (<em>float</em><em>, </em><em>optional</em>) – Standard deviation of the Gaussian distribution for missing values (default is 0.2).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+<li><p><strong>seed</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use a seed for reproducibility (default is True).</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The contaminated time series data.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>numpy.ndarray</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.mcar">
+<span class="sig-name descname"><span class="pre">mcar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">series_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">block_size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seed</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">explainer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.mcar"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.mcar" title="Link to this definition"></a></dt>
 <dd><p>Apply Missing Completely at Random (MCAR) contamination to the time series data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ts</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
-<li><p><strong>series_impacted</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of series to contaminate (default is 0.2).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
+<li><p><strong>series_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of series to contaminate (default is 0.2).</p></li>
 <li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.2).</p></li>
 <li><p><strong>block_size</strong> (<em>int</em><em>, </em><em>optional</em>) – Size of the block of missing data (default is 10).</p></li>
-<li><p><strong>protection</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
-<li><p><strong>use_seed</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use a seed for reproducibility (default is True).</p></li>
-<li><p><strong>seed</strong> (<em>int</em><em>, </em><em>optional</em>) – The value of the seed (default is 42).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+<li><p><strong>seed</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to use a seed for reproducibility (default is True).</p></li>
 <li><p><strong>explainer</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to apply MCAR to specific series for explanation purposes (default is False).</p></li>
 </ul>
 </dd>
@@ -251,16 +310,39 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </dd></dl>
 
 <dl class="py method">
-<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contaminate.missing_percentage">
-<span class="sig-name descname"><span class="pre">missing_percentage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">series_impacted</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">protection</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contaminate.missing_percentage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contaminate.missing_percentage" title="Link to this definition"></a></dt>
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.missing_percentage">
+<span class="sig-name descname"><span class="pre">missing_percentage</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">series_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.missing_percentage"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.missing_percentage" title="Link to this definition"></a></dt>
 <dd><p>Apply missing percentage contamination to the time series data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ts</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
-<li><p><strong>series_impacted</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of series to contaminate (default is 0.2).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
+<li><p><strong>series_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of series to contaminate (default is 0.2).</p></li>
+<li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.2).</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns<span class="colon">:</span></dt>
+<dd class="field-even"><p>The contaminated time series data.</p>
+</dd>
+<dt class="field-odd">Return type<span class="colon">:</span></dt>
+<dd class="field-odd"><p>numpy.ndarray</p>
+</dd>
+</dl>
+</dd></dl>
+
+<dl class="py method">
+<dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.Contamination.overlap">
+<span class="sig-name descname"><span class="pre">overlap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">missing_rate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shift</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">offset</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.Contamination.overlap"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.Contamination.overlap" title="Link to this definition"></a></dt>
+<dd><p>Apply overlap contamination to the time series data.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters<span class="colon">:</span></dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The time series dataset to contaminate.</p></li>
 <li><p><strong>missing_rate</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of missing values per series (default is 0.2).</p></li>
-<li><p><strong>protection</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
+<li><p><strong>limit</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage expressing the limit index of the end of the contamination (default is 1: all length).</p></li>
+<li><p><strong>shift</strong> (<em>float</em><em>, </em><em>optional</em>) – Percentage of shift inside each the last disjoint contamination.</p></li>
+<li><p><strong>offset</strong> (<em>float</em><em>, </em><em>optional</em>) – Size of the uncontaminated section at the beginning of the series (default is 0.1).</p></li>
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
@@ -338,18 +420,18 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.plot">
-<span class="sig-name descname"><span class="pre">plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">raw_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">infected_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">imputed_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">title</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'Time</span> <span class="pre">Series</span> <span class="pre">Data'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_series</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_values</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">series_x</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(16,</span> <span class="pre">8)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.plot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.plot" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">recov_data</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_series</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_values</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">series_range</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">subplot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">size</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">(16,</span> <span class="pre">8)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">save_path</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">display</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.plot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.plot" title="Link to this definition"></a></dt>
 <dd><p>Plot the time series data, including raw, contaminated, or imputed data.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>raw_data</strong> (<em>numpy.ndarray</em>) – The original time series data without contamination.</p></li>
-<li><p><strong>infected_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The contaminated time series data.</p></li>
-<li><p><strong>imputed_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series data.</p></li>
-<li><p><strong>title</strong> (<em>str</em><em>, </em><em>optional</em>) – Title of the plot. Default is “Time Series Data”.</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The original time series data without contamination.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The contaminated time series data.</p></li>
+<li><p><strong>recov_data</strong> (<em>numpy.ndarray</em><em>, </em><em>optional</em>) – The imputed time series data.</p></li>
 <li><p><strong>max_series</strong> (<em>int</em><em>, </em><em>optional</em>) – The maximum number of series to plot.</p></li>
 <li><p><strong>max_values</strong> (<em>int</em><em>, </em><em>optional</em>) – The maximum number of values per series to plot.</p></li>
-<li><p><strong>series_x</strong> (<em>int</em><em>, </em><em>optional</em>) – The index of a specific series to plot. If set, only this series will be plotted.</p></li>
+<li><p><strong>series_range</strong> (<em>int</em><em>, </em><em>optional</em>) – The index of a specific series to plot. If set, only this series will be plotted.</p></li>
+<li><p><strong>subplot</strong> (<em>bool</em><em>, </em><em>optional</em>) – Print one time series by subplot or all in the same plot.</p></li>
 <li><p><strong>size</strong> (<em>tuple</em><em>, </em><em>optional</em>) – Size of the plot in inches. Default is (16, 8).</p></li>
 <li><p><strong>save_path</strong> (<em>str</em><em>, </em><em>optional</em>) – Path to save the plot locally.</p></li>
 <li><p><strong>display</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to display the plot. Default is True.</p></li>
@@ -366,13 +448,17 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.manager.TimeSeries.print">
-<span class="sig-name descname"><span class="pre">print</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">view_by_series</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.print"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.print" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">print</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">limit_timestamps</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit_series</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">7</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">view_by_series</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/manager.html#TimeSeries.print"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.manager.TimeSeries.print" title="Link to this definition"></a></dt>
 <dd><p>Prints a limited number of time series from the dataset.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>limit</strong> (<em>int</em><em>, </em><em>optional</em>) – The number of series to print. Default is 10.</p></li>
-<li><p><strong>view_by_series</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether to view by series (True) or by values (False).</p></li>
+<li><p><strong>limit_timestamps</strong> (<em>int</em><em>, </em><em>optional</em>)</p></li>
+<li><p><strong>restriction.</strong> (<em>The number</em><em> of </em><em>series to print. Default is 10. Use -1 for no</em>)</p></li>
+<li><p><strong>limit_series</strong> (<em>int</em><em>, </em><em>optional</em>)</p></li>
+<li><p><strong>restriction.</strong></p></li>
+<li><p><strong>view_by_series</strong> (<em>bool</em><em>, </em><em>optional</em>)</p></li>
+<li><p><strong>(</strong><strong>False</strong><strong>)</strong><strong>.</strong> (<em>Whether to view by series</em><em> (</em><em>True</em><em>) or </em><em>by values</em>)</p></li>
 </ul>
 </dd>
 <dt class="field-even">Return type<span class="colon">:</span></dt>
@@ -414,7 +500,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.mean_impute.html b/docs/generation/build/html/imputegap.mean_impute.html
index 168a2b02..a77b611c 100644
--- a/docs/generation/build/html/imputegap.mean_impute.html
+++ b/docs/generation/build/html/imputegap.mean_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mean_impute package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mean_impute package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.mean_impute" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.mean_impute.mean_impute">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.mean_impute.</span></span><span class="sig-name descname"><span class="pre">mean_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/mean_impute.html#mean_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.mean_impute.mean_impute" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.mean_impute.</span></span><span class="sig-name descname"><span class="pre">mean_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/mean_impute.html#mean_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.mean_impute.mean_impute" title="Link to this definition"></a></dt>
 <dd><p>Impute NaN values with the mean value of the time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input time series with contamination (missing values represented as NaNs).</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input time series with contamination (missing values represented as NaNs).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Optional parameters for the algorithm. If None, the minimum value from the contamination is used (default is None).</p></li>
 </ul>
 </dd>
@@ -145,9 +144,9 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>This function finds the non-NaN value in the time series and replaces all NaN values with this mean value.
 It is a simple imputation technique for filling missing data points in a dataset.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">contamination</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">mean_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">incomp_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">mean_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 <span class="go">array([[5., 2., 4.],</span>
 <span class="go">       [3., 4., 6.]])</span>
 </pre></div>
@@ -168,7 +167,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.min_impute.html b/docs/generation/build/html/imputegap.min_impute.html
index a71d4341..c0368adc 100644
--- a/docs/generation/build/html/imputegap.min_impute.html
+++ b/docs/generation/build/html/imputegap.min_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.min_impute package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.min_impute package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.min_impute" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.min_impute.min_impute">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.min_impute.</span></span><span class="sig-name descname"><span class="pre">min_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/min_impute.html#min_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.min_impute.min_impute" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.min_impute.</span></span><span class="sig-name descname"><span class="pre">min_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/min_impute.html#min_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.min_impute.min_impute" title="Link to this definition"></a></dt>
 <dd><p>Impute NaN values with the minimum value of the time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input time series with contamination (missing values represented as NaNs).</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input time series with contamination (missing values represented as NaNs).</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Optional parameters for the algorithm. If None, the minimum value from the contamination is used (default is None).</p></li>
 </ul>
 </dd>
@@ -145,9 +144,9 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>This function finds the minimum non-NaN value in the time series and replaces all NaN values with this minimum value.
 It is a simple imputation technique for filling missing data points in a dataset.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">contamination</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">min_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">incomp_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">min_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 <span class="go">array([[1., 2., 1.],</span>
 <span class="go">       [4., 1., 6.]])</span>
 </pre></div>
@@ -168,7 +167,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.mrnn.html b/docs/generation/build/html/imputegap.mrnn.html
index dd5ed69c..14f406ef 100644
--- a/docs/generation/build/html/imputegap.mrnn.html
+++ b/docs/generation/build/html/imputegap.mrnn.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mrnn package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mrnn package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.mrnn" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.mrnn.mrnn">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.mrnn.</span></span><span class="sig-name descname"><span class="pre">mrnn</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hidden_dim</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">learning_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sequence_length</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/mrnn.html#mrnn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.mrnn.mrnn" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.mrnn.</span></span><span class="sig-name descname"><span class="pre">mrnn</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hidden_dim</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">learning_rate</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sequence_length</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/mrnn.html#mrnn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.mrnn.mrnn" title="Link to this definition"></a></dt>
 <dd><p>Perform imputation using the Multivariate Recurrent Neural Network (MRNN) algorithm.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input matrix with contamination (missing values represented as NaNs).</p></li>
 <li><p><strong>hidden_dim</strong> (<em>int</em>) – The number of hidden dimensions in the MRNN model.</p></li>
 <li><p><strong>learning_rate</strong> (<em>float</em>) – The learning rate for the training process.</p></li>
 <li><p><strong>iterations</strong> (<em>int</em>) – The number of iterations for training the MRNN model.</p></li>
@@ -149,8 +148,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>The MRNN algorithm is a machine learning-based approach for time series imputation, where missing values are recovered using a recurrent neural network structure.</p>
 <p>This function logs the total execution time if <cite>logs</cite> is set to True.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">mrnn</span><span class="p">(</span><span class="n">contamination_matrix</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">learning_rate</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="n">sequence_length</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_data</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">mrnn</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">learning_rate</span><span class="o">=</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="n">sequence_length</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -173,7 +172,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.optimization.html b/docs/generation/build/html/imputegap.optimization.html
index 3768a743..7c616cca 100644
--- a/docs/generation/build/html/imputegap.optimization.html
+++ b/docs/generation/build/html/imputegap.optimization.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.optimization package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.optimization package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -72,7 +72,6 @@
 </ul>
 </li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -136,13 +135,13 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">optimize(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">selected_metrics,</span> <span class="pre">algorithm,</span> <span class="pre">\*\*kwargs):</span></span></dt>
+<span class="sig-name descname"><span class="pre">optimize(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">metrics,</span> <span class="pre">algorithm,</span> <span class="pre">\*\*kwargs):</span></span></dt>
 <dd><p>Abstract method for the main optimization process. Must be implemented by subclasses.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.optimization.BaseOptimizer.optimize">
-<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selected_metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#BaseOptimizer.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.BaseOptimizer.optimize" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#BaseOptimizer.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.BaseOptimizer.optimize" title="Link to this definition"></a></dt>
 <dd><p>Abstract method for optimization. Must be implemented in subclasses.</p>
 <p>This method performs the optimization of hyperparameters for a given imputation algorithm. Each subclass
 implements a different optimization strategy (e.g., Greedy, Bayesian, Particle Swarm) and uses the
@@ -150,9 +149,9 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
-<li><p><strong>selected_metrics</strong> (<em>list</em><em> of </em><em>str</em>) – List of selected metrics for optimization.</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
+<li><p><strong>metrics</strong> (<em>list</em><em> of </em><em>str</em>) – List of selected metrics for optimization.</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em>) – The imputation algorithm to optimize.</p></li>
 <li><p><strong>**kwargs</strong> (<em>dict</em>) – Additional parameters specific to the optimization strategy (e.g., number of iterations, particles, etc.).</p></li>
 </ul>
@@ -177,25 +176,25 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 and Successive Halving, used to find the best parameters for different imputation algorithms.</p>
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">Greedy.optimize(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">selected_metrics=[&quot;RMSE&quot;],</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">n_calls=250):</span></span></dt>
+<span class="sig-name descname"><span class="pre">Greedy.optimize(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">metrics=[&quot;RMSE&quot;],</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">n_calls=250):</span></span></dt>
 <dd><p>Perform greedy optimization for hyperparameters.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">Bayesian.optimize(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">selected_metrics=[&quot;RMSE&quot;],</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">n_calls=100,</span> <span class="pre">n_random_starts=50,</span> <span class="pre">acq_func='gp_hedge'):</span></span></dt>
+<span class="sig-name descname"><span class="pre">Bayesian.optimize(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">metrics=[&quot;RMSE&quot;],</span> <span class="pre">algorithm=&quot;cdrec&quot;,</span> <span class="pre">n_calls=100,</span> <span class="pre">n_random_starts=50,</span> <span class="pre">acq_func='gp_hedge'):</span></span></dt>
 <dd><p>Perform Bayesian optimization for hyperparameters.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">ParticleSwarm.optimize(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">selected_metrics,</span> <span class="pre">algorithm,</span> <span class="pre">n_particles,</span> <span class="pre">c1,</span> <span class="pre">c2,</span> <span class="pre">w,</span> <span class="pre">iterations,</span> <span class="pre">n_processes):</span></span></dt>
+<span class="sig-name descname"><span class="pre">ParticleSwarm.optimize(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">metrics,</span> <span class="pre">algorithm,</span> <span class="pre">n_particles,</span> <span class="pre">c1,</span> <span class="pre">c2,</span> <span class="pre">w,</span> <span class="pre">iterations,</span> <span class="pre">n_processes):</span></span></dt>
 <dd><p>Perform Particle Swarm Optimization (PSO) for hyperparameters.</p>
 </dd></dl>
 
 <dl class="py method">
 <dt class="sig sig-object py">
-<span class="sig-name descname"><span class="pre">SuccessiveHalving.optimize(ground_truth,</span> <span class="pre">contamination,</span> <span class="pre">selected_metrics,</span> <span class="pre">algorithm,</span> <span class="pre">num_configs,</span> <span class="pre">num_iterations,</span> <span class="pre">reduction_factor):</span></span></dt>
+<span class="sig-name descname"><span class="pre">SuccessiveHalving.optimize(input_data,</span> <span class="pre">incomp_data,</span> <span class="pre">metrics,</span> <span class="pre">algorithm,</span> <span class="pre">num_configs,</span> <span class="pre">num_iterations,</span> <span class="pre">reduction_factor):</span></span></dt>
 <dd><p>Perform Successive Halving optimization for hyperparameters.</p>
 </dd></dl>
 
@@ -206,14 +205,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>Bayesian optimization strategy for hyperparameters.</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.optimization.Optimization.Bayesian.optimize">
-<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selected_metrics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['RMSE']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_calls</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">100</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_random_starts</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">acq_func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'gp_hedge'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.Bayesian.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.Bayesian.optimize" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metrics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['RMSE']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_calls</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">100</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_random_starts</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">acq_func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'gp_hedge'</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.Bayesian.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.Bayesian.optimize" title="Link to this definition"></a></dt>
 <dd><p>Perform Bayesian optimization for hyperparameters.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
-<li><p><strong>selected_metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
+<li><p><strong>metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – The imputation algorithm to optimize (default is ‘cdrec’).</p></li>
 <li><p><strong>n_calls</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of calls to the objective function (default is 100).</p></li>
 <li><p><strong>n_random_starts</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of random initial points (default is 50).</p></li>
@@ -238,14 +237,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>Greedy optimization strategy for hyperparameters.</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.optimization.Optimization.Greedy.optimize">
-<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selected_metrics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['RMSE']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_calls</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">250</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.Greedy.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.Greedy.optimize" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metrics</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">['RMSE']</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'cdrec'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_calls</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">250</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.Greedy.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.Greedy.optimize" title="Link to this definition"></a></dt>
 <dd><p>Perform greedy optimization for hyperparameters.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
-<li><p><strong>selected_metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
+<li><p><strong>metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – The imputation algorithm to optimize (default is ‘cdrec’).</p></li>
 <li><p><strong>n_calls</strong> (<em>int</em><em>, </em><em>optional</em>) – Number of calls to the objective function (default is 250).</p></li>
 </ul>
@@ -268,14 +267,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>Particle Swarm Optimization (PSO) strategy for hyperparameters.</p>
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize">
-<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selected_metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_particles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">c1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">c2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_processes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.ParticleSwarm.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_particles</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">c1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">c2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_processes</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.ParticleSwarm.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize" title="Link to this definition"></a></dt>
 <dd><p>Perform Particle Swarm Optimization for hyperparameters.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
-<li><p><strong>selected_metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
+<li><p><strong>metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – The imputation algorithm to optimize (default is ‘cdrec’).</p></li>
 <li><p><strong>n_particles</strong> (<em>int</em>) – Number of particles used in PSO.</p></li>
 <li><p><strong>c1</strong> (<em>float</em>) – PSO parameter, personal learning coefficient.</p></li>
@@ -302,14 +301,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <dd><p>Bases: <a class="reference internal" href="#imputegap.recovery.optimization.BaseOptimizer" title="imputegap.recovery.optimization.BaseOptimizer"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseOptimizer</span></code></a></p>
 <dl class="py method">
 <dt class="sig sig-object py" id="imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize">
-<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ground_truth</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">selected_metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_configs</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reduction_factor</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.SuccessiveHalving.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize" title="Link to this definition"></a></dt>
+<span class="sig-name descname"><span class="pre">optimize</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metrics</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">algorithm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_configs</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_iterations</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reduction_factor</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/recovery/optimization.html#Optimization.SuccessiveHalving.optimize"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize" title="Link to this definition"></a></dt>
 <dd><p>Perform Successive Halving optimization for hyperparameters.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>ground_truth</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
-<li><p><strong>selected_metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
+<li><p><strong>input_data</strong> (<em>numpy.ndarray</em>) – The ground truth time series dataset.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The contaminated time series dataset to impute.</p></li>
+<li><p><strong>metrics</strong> (<em>list</em><em> of </em><em>str</em><em>, </em><em>optional</em>) – List of selected metrics for optimization (default is [“RMSE”]).</p></li>
 <li><p><strong>algorithm</strong> (<em>str</em><em>, </em><em>optional</em>) – The imputation algorithm to optimize (default is ‘cdrec’).</p></li>
 <li><p><strong>num_configs</strong> (<em>int</em>) – Number of configurations to try.</p></li>
 <li><p><strong>num_iterations</strong> (<em>int</em>) – Number of iterations for the optimization.</p></li>
@@ -343,7 +342,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.stmvl.html b/docs/generation/build/html/imputegap.stmvl.html
index 0ceb430d..bb878108 100644
--- a/docs/generation/build/html/imputegap.stmvl.html
+++ b/docs/generation/build/html/imputegap.stmvl.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.stmvl package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.stmvl package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3 current"><a class="current reference internal" href="#">imputegap.algorithms.stmvl package</a><ul>
 <li class="toctree-l4"><a class="reference internal" href="#submodules">Submodules</a></li>
@@ -147,8 +146,8 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p>The STMVL algorithm leverages temporal and spatial relationships to recover missing values in a matrix.
 The native C++ implementation is invoked for better performance.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_data</span> <span class="o">=</span> <span class="n">stmvl</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="n">contamination_matrix</span><span class="p">,</span> <span class="n">window_size</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">0.85</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_data</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">stmvl</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">window_size</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="mf">0.85</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">7</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 </pre></div>
 </div>
 <p class="rubric">References</p>
@@ -158,13 +157,13 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.stmvl.stmvl">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.stmvl.</span></span><span class="sig-name descname"><span class="pre">stmvl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">window_size</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gamma</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/stmvl.html#stmvl"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.stmvl.stmvl" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.stmvl.</span></span><span class="sig-name descname"><span class="pre">stmvl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">window_size</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gamma</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">logs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/stmvl.html#stmvl"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.stmvl.stmvl" title="Link to this definition"></a></dt>
 <dd><p>CDREC algorithm for imputation of missing data
 :author: Quentin Nater</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> – time series with contamination</p></li>
+<li><p><strong>incomp_data</strong> – time series with contamination</p></li>
 <li><p><strong>window_size</strong> – window size for temporal component</p></li>
 <li><p><strong>gamma</strong> – smoothing parameter for temporal weight</p></li>
 <li><p><strong>alpha</strong> – power for spatial weight</p></li>
@@ -172,7 +171,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 </ul>
 </dd>
 <dt class="field-even">Returns<span class="colon">:</span></dt>
-<dd class="field-even"><p>imputed_matrix, metrics : all time series with imputation data and their metrics</p>
+<dd class="field-even"><p>recov_data, metrics : all time series with imputation data and their metrics</p>
 </dd>
 </dl>
 </dd></dl>
@@ -191,7 +190,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.tools.html b/docs/generation/build/html/imputegap.tools.html
index 4f2d2c40..52b92f56 100644
--- a/docs/generation/build/html/imputegap.tools.html
+++ b/docs/generation/build/html/imputegap.tools.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -109,7 +109,7 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.utils.html b/docs/generation/build/html/imputegap.utils.html
index 2296f302..a3c6151e 100644
--- a/docs/generation/build/html/imputegap.utils.html
+++ b/docs/generation/build/html/imputegap.utils.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools.utils package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools.utils package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -277,7 +276,7 @@ <h2>Submodule Documentation<a class="headerlink" href="#submodule-documentation"
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.wrapper.html b/docs/generation/build/html/imputegap.wrapper.html
index 1f9b12df..25baa0d3 100644
--- a/docs/generation/build/html/imputegap.wrapper.html
+++ b/docs/generation/build/html/imputegap.wrapper.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.wrapper package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.wrapper package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -110,7 +110,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/imputegap.zero_impute.html b/docs/generation/build/html/imputegap.zero_impute.html
index 69219481..3db884d4 100644
--- a/docs/generation/build/html/imputegap.zero_impute.html
+++ b/docs/generation/build/html/imputegap.zero_impute.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.zero_impute package &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.zero_impute package &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -68,7 +68,6 @@
 <li class="toctree-l3"><a class="reference internal" href="imputegap.imputation.html">imputegap.recovery.imputation package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.optimization.html">imputegap.recovery.optimization package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.explainer.html">imputegap.recovery.explainer package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.stmvl.html">imputegap.algorithms.stmvl package</a></li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.iim.html">imputegap.algorithms.iim package</a></li>
@@ -125,12 +124,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <span id="modules"></span><h2>Modules<a class="headerlink" href="#module-imputegap.algorithms.zero_impute" title="Link to this heading"></a></h2>
 <dl class="py function">
 <dt class="sig sig-object py" id="imputegap.algorithms.zero_impute.zero_impute">
-<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.zero_impute.</span></span><span class="sig-name descname"><span class="pre">zero_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">contamination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/zero_impute.html#zero_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.zero_impute.zero_impute" title="Link to this definition"></a></dt>
+<span class="sig-prename descclassname"><span class="pre">imputegap.algorithms.zero_impute.</span></span><span class="sig-name descname"><span class="pre">zero_impute</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">incomp_data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="modules/imputegap/algorithms/zero_impute.html#zero_impute"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#imputegap.algorithms.zero_impute.zero_impute" title="Link to this definition"></a></dt>
 <dd><p>Impute missing values (NaNs) with zeros in the time series.</p>
 <dl class="field-list simple">
 <dt class="field-odd">Parameters<span class="colon">:</span></dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>contamination</strong> (<em>numpy.ndarray</em>) – The input time series matrix with missing values represented as NaNs.</p></li>
+<li><p><strong>incomp_data</strong> (<em>numpy.ndarray</em>) – The input time series matrix with missing values represented as NaNs.</p></li>
 <li><p><strong>params</strong> (<em>dict</em><em>, </em><em>optional</em>) – Optional parameters for the algorithm. This is not used in the current implementation but can be passed for future extensions (default is None).</p></li>
 </ul>
 </dd>
@@ -144,9 +143,9 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
 <p class="rubric">Notes</p>
 <p>This simple imputation strategy replaces all missing values (NaNs) with zeros. This can be useful for initializing datasets where more complex imputation methods will follow.</p>
 <p class="rubric">Example</p>
-<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">contamination</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">zero_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">imputed_matrix</span><span class="p">)</span>
+<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">incomp_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">],</span> <span class="p">[</span><span class="mi">4</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">,</span> <span class="mi">6</span><span class="p">]])</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">zero_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="nb">print</span><span class="p">(</span><span class="n">recov_data</span><span class="p">)</span>
 <span class="go">array([[1., 2., 0.],</span>
 <span class="go">       [4., 0., 6.]])</span>
 </pre></div>
@@ -172,7 +171,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Link to this headi
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/index.html b/docs/generation/build/html/index.html
index 205fe2bc..aec826cd 100644
--- a/docs/generation/build/html/index.html
+++ b/docs/generation/build/html/index.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap documentation &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap documentation &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -50,7 +50,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -90,7 +90,8 @@
              
   <section id="imputegap-documentation">
 <h1>imputegap documentation<a class="headerlink" href="#imputegap-documentation" title="Link to this heading"></a></h1>
-<p>ImputeGAP is a comprehensive framework designed for time series imputation algorithms. It offers a streamlined interface that bridges algorithm evaluation and parameter tuning, utilizing datasets from diverse fields such as neuroscience, medicine, and energy. The framework includes advanced imputation algorithms from five different families, supports various patterns of missing data, and provides multiple evaluation metrics. Additionally, ImputeGAP enables AutoML optimization, feature extraction, and feature analysis. The framework enables easy integration of new algorithms, datasets, and evaluation metrics.</p>
+<p>ImputeGAP is a unified framework for imputation algorithms that provides a narrow-waist interface between algorithm evaluation and parameterization for datasets issued from various domains ranging from neuroscience, medicine, climate to energy.</p>
+<p>The interface provides advanced imputation algorithms, construction of various missing values patterns, and different evaluation metrics. In addition, the framework offers support for AutoML parameterization techniques, feature extraction, and, potentially, analysis of feature impact using SHAP. The framework should allow a straightforward integration of new algorithms, datasets, and metrics.</p>
 <div class="toctree-wrapper compound">
 </div>
 <table class="autosummary longtable docutils align-default">
@@ -110,7 +111,7 @@ <h1>imputegap documentation<a class="headerlink" href="#imputegap-documentation"
 <tr class="row-odd"><td><p><a class="reference internal" href="imputegap.evaluation.html#module-0" title="imputegap.recovery.evaluation"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imputegap.recovery.evaluation</span></code></a></p></td>
 <td><p></p></td>
 </tr>
-<tr class="row-even"><td><p><a class="reference internal" href="imputegap.benchmarking.html#module-0" title="imputegap.recovery.benchmarking"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imputegap.recovery.benchmarking</span></code></a></p></td>
+<tr class="row-even"><td><p><a class="reference internal" href="imputegap.benchmark.html#module-0" title="imputegap.recovery.benchmark"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imputegap.recovery.benchmark</span></code></a></p></td>
 <td><p></p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="imputegap.cdrec.html#module-imputegap.algorithms.cdrec" title="imputegap.algorithms.cdrec"><code class="xref py py-obj docutils literal notranslate"><span class="pre">imputegap.algorithms.cdrec</span></code></a></p></td>
@@ -166,13 +167,6 @@ <h1>imputegap<a class="headerlink" href="#imputegap" title="Link to this heading
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#module-imputegap.recovery.explainer">Module contents</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#submodules">Submodules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#module-imputegap.recovery.benchmarking">Modules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#submodule-documentation">Submodule Documentation</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#module-0">imputegap.recovery.evaluation module</a></li>
-</ul>
-</li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a><ul>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.cdrec.html#submodules">Submodules</a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.cdrec.html#module-imputegap.algorithms.cdrec">Modules</a></li>
@@ -242,7 +236,7 @@ <h1>imputegap<a class="headerlink" href="#imputegap" title="Link to this heading
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules.html b/docs/generation/build/html/modules.html
index 7f588e7e..d7cbb371 100644
--- a/docs/generation/build/html/modules.html
+++ b/docs/generation/build/html/modules.html
@@ -6,7 +6,7 @@
   <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
 
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -49,7 +49,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -113,13 +113,6 @@ <h1>imputegap<a class="headerlink" href="#imputegap" title="Link to this heading
 <li class="toctree-l4"><a class="reference internal" href="imputegap.explainer.html#module-imputegap.recovery.explainer">Module contents</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="imputegap.benchmarking.html">imputegap.recovery.benchmarking package</a><ul>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#submodules">Submodules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#module-imputegap.recovery.benchmarking">Modules</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#submodule-documentation">Submodule Documentation</a></li>
-<li class="toctree-l4"><a class="reference internal" href="imputegap.benchmarking.html#module-0">imputegap.recovery.evaluation module</a></li>
-</ul>
-</li>
 <li class="toctree-l3"><a class="reference internal" href="imputegap.cdrec.html">imputegap.algorithms.cdrec package</a><ul>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.cdrec.html#submodules">Submodules</a></li>
 <li class="toctree-l4"><a class="reference internal" href="imputegap.cdrec.html#module-imputegap.algorithms.cdrec">Modules</a></li>
@@ -187,7 +180,7 @@ <h1>imputegap<a class="headerlink" href="#imputegap" title="Link to this heading
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/cdrec.html b/docs/generation/build/html/modules/imputegap/algorithms/cdrec.html
index 6622acb8..a4e06c89 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/cdrec.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/cdrec.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.cdrec &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.cdrec &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -195,13 +195,13 @@ <h1>Source code for imputegap.algorithms.cdrec</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="cdrec">
 <a class="viewcode-back" href="../../../imputegap.cdrec.html#imputegap.algorithms.cdrec.cdrec">[docs]</a>
-<span class="k">def</span> <span class="nf">cdrec</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">lib_path</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">cdrec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">lib_path</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    CDRec algorithm for matrix imputation of missing values using Centroid Decomposition.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input matrix with contamination (missing values represented as NaNs).</span>
 <span class="sd">    truncation_rank : int</span>
 <span class="sd">        The truncation rank for matrix decomposition (must be greater than 1 and smaller than the number of series).</span>
@@ -221,21 +221,21 @@ <h1>Source code for imputegap.algorithms.cdrec</h1><div class="highlight"><pre>
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; imputed_data = cdrec(contamination=contamination_matrix, truncation_rank=1, iterations=100, epsilon=0.000001, logs=True)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_data)</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = cdrec(incomp_data=incomp_data, truncation_rank=1, iterations=100, epsilon=0.000001, logs=True)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
     <span class="c1"># Call the C++ function to perform recovery</span>
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">native_cdrec</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">native_cdrec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span><span class="p">)</span>
 
     <span class="n">end_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
 
     <span class="k">if</span> <span class="n">logs</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n\t\t</span><span class="s2">&gt; logs, imputation cdrec - Execution Time: </span><span class="si">{</span><span class="p">(</span><span class="n">end_time</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">start_time</span><span class="p">)</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2"> seconds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -246,7 +246,7 @@ <h1>Source code for imputegap.algorithms.cdrec</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/iim.html b/docs/generation/build/html/modules/imputegap/algorithms/iim.html
index 2d958e4c..d1f8b6ef 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/iim.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/iim.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.iim &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.iim &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -93,13 +93,13 @@ <h1>Source code for imputegap.algorithms.iim</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="iim">
 <a class="viewcode-back" href="../../../imputegap.iim.html#imputegap.algorithms.iim.iim">[docs]</a>
-<span class="k">def</span> <span class="nf">iim</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="p">,</span> <span class="n">algo_code</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">iim</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="p">,</span> <span class="n">algo_code</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Perform imputation using the Iterative Imputation Method (IIM) algorithm.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input matrix with contamination (missing values represented as NaNs).</span>
 <span class="sd">    number_neighbor : int</span>
 <span class="sd">        The number of neighbors to use for the K-Nearest Neighbors (KNN) classifier (default is 10).</span>
@@ -122,8 +122,8 @@ <h1>Source code for imputegap.algorithms.iim</h1><div class="highlight"><pre>
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; imputed_data = iim(contamination_matrix, number_neighbor=10, algo_code=&quot;iim 2&quot;)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_data)</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = iim(incomp_data, number_neighbor=10, algo_code=&quot;iim 2&quot;)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 
 <span class="sd">    References</span>
 <span class="sd">    ----------</span>
@@ -132,13 +132,13 @@ <h1>Source code for imputegap.algorithms.iim</h1><div class="highlight"><pre>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">impute_with_algorithm</span><span class="p">(</span><span class="n">algo_code</span><span class="p">,</span> <span class="n">contamination</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">number_neighbor</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">impute_with_algorithm</span><span class="p">(</span><span class="n">algo_code</span><span class="p">,</span> <span class="n">incomp_data</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">number_neighbor</span><span class="p">)</span>
 
     <span class="n">end_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
     <span class="k">if</span> <span class="n">logs</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n\t\t</span><span class="s2">&gt; logs, imputation iim - Execution Time: </span><span class="si">{</span><span class="p">(</span><span class="n">end_time</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">start_time</span><span class="p">)</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2"> seconds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -149,7 +149,7 @@ <h1>Source code for imputegap.algorithms.iim</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/mean_impute.html b/docs/generation/build/html/modules/imputegap/algorithms/mean_impute.html
index 5d3351f6..c36b895f 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/mean_impute.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/mean_impute.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mean_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mean_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -92,13 +92,13 @@ <h1>Source code for imputegap.algorithms.mean_impute</h1><div class="highlight">
 
 <div class="viewcode-block" id="mean_impute">
 <a class="viewcode-back" href="../../../imputegap.mean_impute.html#imputegap.algorithms.mean_impute.mean_impute">[docs]</a>
-<span class="k">def</span> <span class="nf">mean_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">mean_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Impute NaN values with the mean value of the time series.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input time series with contamination (missing values represented as NaNs).</span>
 <span class="sd">    params : dict, optional</span>
 <span class="sd">        Optional parameters for the algorithm. If None, the minimum value from the contamination is used (default is None).</span>
@@ -115,21 +115,21 @@ <h1>Source code for imputegap.algorithms.mean_impute</h1><div class="highlight">
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; contamination = np.array([[5, 2, np.nan], [3, np.nan, 6]])</span>
-<span class="sd">    &gt;&gt;&gt; imputed_matrix = mean_impute(contamination)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_matrix)</span>
+<span class="sd">    &gt;&gt;&gt; incomp_data = np.array([[5, 2, np.nan], [3, np.nan, 6]])</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = mean_impute(incomp_data)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 <span class="sd">    array([[5., 2., 4.],</span>
 <span class="sd">           [3., 4., 6.]])</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># logic</span>
-    <span class="n">mean_value</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nanmean</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+    <span class="n">mean_value</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nanmean</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 
     <span class="c1"># Imputation</span>
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="n">mean_value</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="n">mean_value</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -140,7 +140,7 @@ <h1>Source code for imputegap.algorithms.mean_impute</h1><div class="highlight">
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/min_impute.html b/docs/generation/build/html/modules/imputegap/algorithms/min_impute.html
index 7d597cd4..6280ebc4 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/min_impute.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/min_impute.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.min_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.min_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -92,13 +92,13 @@ <h1>Source code for imputegap.algorithms.min_impute</h1><div class="highlight"><
 
 <div class="viewcode-block" id="min_impute">
 <a class="viewcode-back" href="../../../imputegap.min_impute.html#imputegap.algorithms.min_impute.min_impute">[docs]</a>
-<span class="k">def</span> <span class="nf">min_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">min_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Impute NaN values with the minimum value of the time series.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input time series with contamination (missing values represented as NaNs).</span>
 <span class="sd">    params : dict, optional</span>
 <span class="sd">        Optional parameters for the algorithm. If None, the minimum value from the contamination is used (default is None).</span>
@@ -115,21 +115,21 @@ <h1>Source code for imputegap.algorithms.min_impute</h1><div class="highlight"><
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; contamination = np.array([[1, 2, np.nan], [4, np.nan, 6]])</span>
-<span class="sd">    &gt;&gt;&gt; imputed_matrix = min_impute(contamination)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_matrix)</span>
+<span class="sd">    &gt;&gt;&gt; incomp_data = np.array([[1, 2, np.nan], [4, np.nan, 6]])</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = min_impute(incomp_data)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 <span class="sd">    array([[1., 2., 1.],</span>
 <span class="sd">           [4., 1., 6.]])</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
 
     <span class="c1"># logic</span>
-    <span class="n">min_value</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nanmin</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+    <span class="n">min_value</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nanmin</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 
     <span class="c1"># Imputation</span>
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="n">min_value</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="n">min_value</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -140,7 +140,7 @@ <h1>Source code for imputegap.algorithms.min_impute</h1><div class="highlight"><
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/mrnn.html b/docs/generation/build/html/modules/imputegap/algorithms/mrnn.html
index 41e04adc..acecf909 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/mrnn.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/mrnn.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.mrnn &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.mrnn &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -93,13 +93,13 @@ <h1>Source code for imputegap.algorithms.mrnn</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="mrnn">
 <a class="viewcode-back" href="../../../imputegap.mrnn.html#imputegap.algorithms.mrnn.mrnn">[docs]</a>
-<span class="k">def</span> <span class="nf">mrnn</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">sequence_length</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">mrnn</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">sequence_length</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Perform imputation using the Multivariate Recurrent Neural Network (MRNN) algorithm.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input matrix with contamination (missing values represented as NaNs).</span>
 <span class="sd">    hidden_dim : int</span>
 <span class="sd">        The number of hidden dimensions in the MRNN model.</span>
@@ -125,8 +125,8 @@ <h1>Source code for imputegap.algorithms.mrnn</h1><div class="highlight"><pre>
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; imputed_data = mrnn(contamination_matrix, hidden_dim=64, learning_rate=0.001, iterations=1000, sequence_length=7)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_data)</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = mrnn(incomp_data, hidden_dim=64, learning_rate=0.001, iterations=1000, sequence_length=7)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 
 <span class="sd">    References</span>
 <span class="sd">    ----------</span>
@@ -134,14 +134,14 @@ <h1>Source code for imputegap.algorithms.mrnn</h1><div class="highlight"><pre>
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">mrnn_recov</span><span class="p">(</span><span class="n">matrix_in</span><span class="o">=</span><span class="n">contamination</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="o">=</span><span class="n">learning_rate</span><span class="p">,</span>
-                                <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">seq_length</span><span class="o">=</span><span class="n">sequence_length</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">mrnn_recov</span><span class="p">(</span><span class="n">matrix_in</span><span class="o">=</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="o">=</span><span class="n">learning_rate</span><span class="p">,</span>
+                            <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">seq_length</span><span class="o">=</span><span class="n">sequence_length</span><span class="p">)</span>
 
     <span class="n">end_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
     <span class="k">if</span> <span class="n">logs</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n\t\t</span><span class="s2">&gt; logs, imputation mrnn - Execution Time: </span><span class="si">{</span><span class="p">(</span><span class="n">end_time</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">start_time</span><span class="p">)</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2"> seconds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -152,7 +152,7 @@ <h1>Source code for imputegap.algorithms.mrnn</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/stmvl.html b/docs/generation/build/html/modules/imputegap/algorithms/stmvl.html
index 018096f4..1e57c404 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/stmvl.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/stmvl.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.stmvl &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.stmvl &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -167,8 +167,8 @@ <h1>Source code for imputegap.algorithms.stmvl</h1><div class="highlight"><pre>
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; imputed_data = stmvl(contamination=contamination_matrix, window_size=2, gamma=0.85, alpha=7)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_data)</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = stmvl(incomp_data=incomp_data, window_size=2, gamma=0.85, alpha=7)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 
 <span class="sd">    References</span>
 <span class="sd">    ----------</span>
@@ -214,31 +214,31 @@ <h1>Source code for imputegap.algorithms.stmvl</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="stmvl">
 <a class="viewcode-back" href="../../../imputegap.stmvl.html#imputegap.algorithms.stmvl.stmvl">[docs]</a>
-<span class="k">def</span> <span class="nf">stmvl</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">stmvl</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    CDREC algorithm for imputation of missing data</span>
 <span class="sd">    :author: Quentin Nater</span>
 
-<span class="sd">    :param contamination: time series with contamination</span>
+<span class="sd">    :param incomp_data: time series with contamination</span>
 <span class="sd">    :param window_size: window size for temporal component</span>
 <span class="sd">    :param gamma: smoothing parameter for temporal weight</span>
 <span class="sd">    :param alpha: power for spatial weight</span>
 
 <span class="sd">    :param logs: print logs of time execution</span>
 
-<span class="sd">    :return: imputed_matrix, metrics : all time series with imputation data and their metrics</span>
+<span class="sd">    :return: recov_data, metrics : all time series with imputation data and their metrics</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
     <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
     <span class="c1"># Call the C++ function to perform recovery</span>
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">native_stmvl</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">native_stmvl</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
 
     <span class="n">end_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
     <span class="k">if</span> <span class="n">logs</span><span class="p">:</span>
         <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n\t\t</span><span class="s2">&gt; logs, imputation stvml - Execution Time: </span><span class="si">{</span><span class="p">(</span><span class="n">end_time</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">start_time</span><span class="p">)</span><span class="si">:</span><span class="s2">.4f</span><span class="si">}</span><span class="s2"> seconds</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -249,7 +249,7 @@ <h1>Source code for imputegap.algorithms.stmvl</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/algorithms/zero_impute.html b/docs/generation/build/html/modules/imputegap/algorithms/zero_impute.html
index ab3c07f6..92715e64 100644
--- a/docs/generation/build/html/modules/imputegap/algorithms/zero_impute.html
+++ b/docs/generation/build/html/modules/imputegap/algorithms/zero_impute.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.algorithms.zero_impute &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.algorithms.zero_impute &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -92,13 +92,13 @@ <h1>Source code for imputegap.algorithms.zero_impute</h1><div class="highlight">
 
 <div class="viewcode-block" id="zero_impute">
 <a class="viewcode-back" href="../../../imputegap.zero_impute.html#imputegap.algorithms.zero_impute.zero_impute">[docs]</a>
-<span class="k">def</span> <span class="nf">zero_impute</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">zero_impute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">    Impute missing values (NaNs) with zeros in the time series.</span>
 
 <span class="sd">    Parameters</span>
 <span class="sd">    ----------</span>
-<span class="sd">    contamination : numpy.ndarray</span>
+<span class="sd">    incomp_data : numpy.ndarray</span>
 <span class="sd">        The input time series matrix with missing values represented as NaNs.</span>
 <span class="sd">    params : dict, optional</span>
 <span class="sd">        Optional parameters for the algorithm. This is not used in the current implementation but can be passed for future extensions (default is None).</span>
@@ -114,17 +114,17 @@ <h1>Source code for imputegap.algorithms.zero_impute</h1><div class="highlight">
 
 <span class="sd">    Example</span>
 <span class="sd">    -------</span>
-<span class="sd">    &gt;&gt;&gt; contamination = np.array([[1, 2, np.nan], [4, np.nan, 6]])</span>
-<span class="sd">    &gt;&gt;&gt; imputed_matrix = zero_impute(contamination)</span>
-<span class="sd">    &gt;&gt;&gt; print(imputed_matrix)</span>
+<span class="sd">    &gt;&gt;&gt; incomp_data = np.array([[1, 2, np.nan], [4, np.nan, 6]])</span>
+<span class="sd">    &gt;&gt;&gt; recov_data = zero_impute(incomp_data)</span>
+<span class="sd">    &gt;&gt;&gt; print(recov_data)</span>
 <span class="sd">    array([[1., 2., 0.],</span>
 <span class="sd">           [4., 0., 6.]])</span>
 
 <span class="sd">    :author: Quentin Nater</span>
 <span class="sd">    &quot;&quot;&quot;</span>
-    <span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">contamination</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+    <span class="n">recov_data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan_to_num</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">nan</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
 
-    <span class="k">return</span> <span class="n">imputed_matrix</span></div>
+    <span class="k">return</span> <span class="n">recov_data</span></div>
 
 </pre></div>
 
@@ -135,7 +135,7 @@ <h1>Source code for imputegap.algorithms.zero_impute</h1><div class="highlight">
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/recovery/benchmark.html b/docs/generation/build/html/modules/imputegap/recovery/benchmark.html
new file mode 100644
index 00000000..fee1ccdc
--- /dev/null
+++ b/docs/generation/build/html/modules/imputegap/recovery/benchmark.html
@@ -0,0 +1,928 @@
+
+
+<!DOCTYPE html>
+<html class="writer-html5" lang="en" data-content_root="../../../">
+<head>
+  <meta charset="utf-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <title>imputegap.recovery.benchmark &mdash; imputegap 1.0.3 documentation</title>
+      <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
+      <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
+      <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
+
+  
+    <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
+      <script src="../../../static/jquery.js?v=5d32c60e"></script>
+      <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
+      <script src="../../../static/doctools.js?v=9bcbadda"></script>
+      <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
+    <script src="../../../static/js/theme.js"></script>
+    <link rel="index" title="Index" href="../../../genindex.html" />
+    <link rel="search" title="Search" href="../../../search.html" /> 
+</head>
+
+<body class="wy-body-for-nav"> 
+  <div class="wy-grid-for-nav">
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
+      <div class="wy-side-scroll">
+        <div class="wy-side-nav-search" >
+
+          
+          
+          <a href="../../../index.html" class="icon icon-home">
+            imputegap
+              <img src="https://www.naterscreations.com/imputegap/logo_imputegab.png" class="logo" alt="Logo"/>
+          </a>
+<div role="search">
+  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
+    <input type="hidden" name="check_keywords" value="yes" />
+    <input type="hidden" name="area" value="default" />
+  </form>
+</div>
+        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
+              <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.manager.html">imputegap.recovery.manager</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.imputation.html">imputegap.recovery.imputation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.mrnn.html">imputegap.algorithms.mrnn</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.mean_impute.html">imputegap.algorithms.mean_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.min_impute.html">imputegap.algorithms.min_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.zero_impute.html">imputegap.algorithms.zero_impute</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.tools.utils.html">imputegap.tools.utils</a></li>
+</ul>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../imputegap.html">imputegap package</a></li>
+</ul>
+
+        </div>
+      </div>
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
+          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+          <a href="../../../index.html">imputegap</a>
+      </nav>
+
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="Page navigation">
+  <ul class="wy-breadcrumbs">
+      <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
+          <li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
+      <li class="breadcrumb-item active">imputegap.recovery.benchmark</li>
+      <li class="wy-breadcrumbs-aside">
+      </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
+           <div itemprop="articleBody">
+             
+  <h1>Source code for imputegap.recovery.benchmark</h1><div class="highlight"><pre>
+<span></span><span class="kn">import</span> <span class="nn">datetime</span>
+<span class="kn">import</span> <span class="nn">importlib</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="kn">import</span> <span class="nn">math</span>
+<span class="kn">import</span> <span class="nn">time</span>
+<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
+<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
+
+<span class="kn">import</span> <span class="nn">xlsxwriter</span>
+
+<span class="kn">from</span> <span class="nn">imputegap.tools</span> <span class="kn">import</span> <span class="n">utils</span>
+<span class="kn">from</span> <span class="nn">imputegap.recovery.imputation</span> <span class="kn">import</span> <span class="n">Imputation</span>
+<span class="kn">from</span> <span class="nn">imputegap.recovery.manager</span> <span class="kn">import</span> <span class="n">TimeSeries</span>
+
+
+<div class="viewcode-block" id="Benchmark">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark">[docs]</a>
+<span class="k">class</span> <span class="nc">Benchmark</span><span class="p">:</span>
+<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    A class to evaluate the performance of imputation algorithms through benchmarking across datasets and patterns.</span>
+
+<span class="sd">    Methods</span>
+<span class="sd">    -------</span>
+<span class="sd">    _config_optimization():</span>
+<span class="sd">        Configure and execute optimization for a selected imputation algorithm and contamination pattern.</span>
+<span class="sd">    average_runs_by_names(self, data):</span>
+<span class="sd">        Average the results of all runs depending on the dataset.</span>
+<span class="sd">    avg_results():</span>
+<span class="sd">        Calculate average metrics (e.g., RMSE) across multiple datasets and algorithm runs.</span>
+<span class="sd">    generate_heatmap():</span>
+<span class="sd">        Generate and save a heatmap visualization of RMSE scores for datasets and algorithms.</span>
+<span class="sd">    generate_reports_txt():</span>
+<span class="sd">        Create detailed text-based reports summarizing metrics and timing results for all evaluations.</span>
+<span class="sd">    generate_reports_excel():</span>
+<span class="sd">        Create detailed excel-based reports summarizing metrics and timing results for all evaluations.</span>
+<span class="sd">    generate_plots():</span>
+<span class="sd">        Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across patterns and datasets.</span>
+<span class="sd">    eval():</span>
+<span class="sd">        Perform a complete benchmarking pipeline, including contamination, imputation, evaluation, and reporting.</span>
+
+<span class="sd">    Example</span>
+<span class="sd">    -------</span>
+<span class="sd">    output : {&#39;drift&#39;: {&#39;mcar&#39;: {&#39;mean&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9234927128429051, &#39;MAE&#39;: 0.7219362152785619, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.0010309219360351562, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005755424499511719}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9699990038879407, &#39;MAE&#39;: 0.7774057495176013, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.0020699501037597656, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.00048422813415527344}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9914069853975623, &#39;MAE&#39;: 0.8134840739732964, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.007096290588378906, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.000461578369140625}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0552448338389784, &#39;MAE&#39;: 0.7426695186604741, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.043192148208618164, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005095005035400391}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0143105930114702, &#39;MAE&#39;: 0.7610548321723654, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.17184901237487793, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005536079406738281}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.010712060535523, &#39;MAE&#39;: 0.7641520748788702, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.6064670085906982, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005743503570556641}}}}, &#39;cdrec&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.23303624184873978, &#39;MAE&#39;: 0.13619797235197734, &#39;MI&#39;: 1.2739817718416822, &#39;CORRELATION&#39;: 0.968435455112644}, &#39;times&#39;: {&#39;contamination&#39;: 0.0009615421295166016, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.09218788146972656}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.18152059329152104, &#39;MAE&#39;: 0.09925566629402761, &#39;MI&#39;: 1.1516089897042538, &#39;CORRELATION&#39;: 0.9829398352220718}, &#39;times&#39;: {&#39;contamination&#39;: 0.00482487678527832, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.09549617767333984}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.13894771223733138, &#39;MAE&#39;: 0.08459032692102293, &#39;MI&#39;: 1.186191167936035, &#39;CORRELATION&#39;: 0.9901338133811375}, &#39;times&#39;: {&#39;contamination&#39;: 0.01713728904724121, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.1129295825958252}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.7544523683503829, &#39;MAE&#39;: 0.11218049973594252, &#39;MI&#39;: 0.021165172206064526, &#39;CORRELATION&#39;: 0.814120507570725}, &#39;times&#39;: {&#39;contamination&#39;: 0.10881781578063965, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.9378046989440918}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4355197572001326, &#39;MAE&#39;: 0.1380846624733049, &#39;MI&#39;: 0.10781252370591506, &#39;CORRELATION&#39;: 0.9166777087122915}, &#39;times&#39;: {&#39;contamination&#39;: 0.2380077838897705, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.8785057067871094}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.7672558930795506, &#39;MAE&#39;: 0.32988968428439397, &#39;MI&#39;: 0.013509125598802707, &#39;CORRELATION&#39;: 0.7312998041323675}, &#39;times&#39;: {&#39;contamination&#39;: 0.6805167198181152, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.9562773704528809}}}}, &#39;stmvl&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.5434405584289141, &#39;MAE&#39;: 0.346560495723809, &#39;MI&#39;: 0.7328867182584357, &#39;CORRELATION&#39;: 0.8519431955571422}, &#39;times&#39;: {&#39;contamination&#39;: 0.0022056102752685547, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.07010293006897}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.39007056542870916, &#39;MAE&#39;: 0.2753022759369617, &#39;MI&#39;: 0.8280959876205578, &#39;CORRELATION&#39;: 0.9180937736429735}, &#39;times&#39;: {&#39;contamination&#39;: 0.002231597900390625, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.543020248413086}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.37254427425455994, &#39;MAE&#39;: 0.2730547993858495, &#39;MI&#39;: 0.7425412593844177, &#39;CORRELATION&#39;: 0.9293322959355041}, &#39;times&#39;: {&#39;contamination&#39;: 0.0072672367095947266, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.88247036933899}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.6027573766269363, &#39;MAE&#39;: 0.34494332493982044, &#39;MI&#39;: 0.11876685901414151, &#39;CORRELATION&#39;: 0.8390532279447225}, &#39;times&#39;: {&#39;contamination&#39;: 0.04321551322937012, &#39;optimization&#39;: 0, &#39;imputation&#39;: 54.10793352127075}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9004526656857551, &#39;MAE&#39;: 0.4924048353228427, &#39;MI&#39;: 0.011590260996247858, &#39;CORRELATION&#39;: 0.5650541301828254}, &#39;times&#39;: {&#39;contamination&#39;: 0.1728806495666504, &#39;optimization&#39;: 0, &#39;imputation&#39;: 40.53373336791992}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0112488396023014, &#39;MAE&#39;: 0.7646823531588104, &#39;MI&#39;: 0.00040669209664367576, &#39;CORRELATION&#39;: 0.0183962968474991}, &#39;times&#39;: {&#39;contamination&#39;: 0.6077785491943359, &#39;optimization&#39;: 0, &#39;imputation&#39;: 35.151907444000244}}}}, &#39;iim&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4445625930776235, &#39;MAE&#39;: 0.2696133927362288, &#39;MI&#39;: 1.1167751522591498, &#39;CORRELATION&#39;: 0.8944975075266335}, &#39;times&#39;: {&#39;contamination&#39;: 0.0010058879852294922, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.7380530834197998}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.2939506418814281, &#39;MAE&#39;: 0.16953644212278182, &#39;MI&#39;: 1.0160968166750064, &#39;CORRELATION&#39;: 0.9531900627237018}, &#39;times&#39;: {&#39;contamination&#39;: 0.0019745826721191406, &#39;optimization&#39;: 0, &#39;imputation&#39;: 4.7826457023620605}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.2366529609250008, &#39;MAE&#39;: 0.14709529129218185, &#39;MI&#39;: 1.064299483512458, &#39;CORRELATION&#39;: 0.9711348247027318}, &#39;times&#39;: {&#39;contamination&#39;: 0.00801849365234375, &#39;optimization&#39;: 0, &#39;imputation&#39;: 33.94813060760498}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4155649406397416, &#39;MAE&#39;: 0.22056702659999994, &#39;MI&#39;: 0.06616526470761779, &#39;CORRELATION&#39;: 0.919934494058292}, &#39;times&#39;: {&#39;contamination&#39;: 0.04391813278198242, &#39;optimization&#39;: 0, &#39;imputation&#39;: 255.31524085998535}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.38695094864012947, &#39;MAE&#39;: 0.24340565131372927, &#39;MI&#39;: 0.06361822797740405, &#39;CORRELATION&#39;: 0.9249744935121553}, &#39;times&#39;: {&#39;contamination&#39;: 0.17044353485107422, &#39;optimization&#39;: 0, &#39;imputation&#39;: 840.7470128536224}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.5862696375344495, &#39;MAE&#39;: 0.3968159514130716, &#39;MI&#39;: 0.13422239939628303, &#39;CORRELATION&#39;: 0.8178796825899766}, &#39;times&#39;: {&#39;contamination&#39;: 0.5999574661254883, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1974.6101157665253}}}}, &#39;mrnn&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9458508648057621, &#39;MAE&#39;: 0.7019459696903068, &#39;MI&#39;: 0.11924522547609226, &#39;CORRELATION&#39;: 0.02915935932568557}, &#39;times&#39;: {&#39;contamination&#39;: 0.001056671142578125, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.42237901687622}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0125309431502871, &#39;MAE&#39;: 0.761136543268339, &#39;MI&#39;: 0.12567590499764303, &#39;CORRELATION&#39;: -0.037161060882302754}, &#39;times&#39;: {&#39;contamination&#39;: 0.003415822982788086, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.04829454421997}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0317754516097355, &#39;MAE&#39;: 0.7952869439926, &#39;MI&#39;: 0.10908095436833125, &#39;CORRELATION&#39;: -0.04155403791391449}, &#39;times&#39;: {&#39;contamination&#39;: 0.007429599761962891, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.42568325996399}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0807965786089415, &#39;MAE&#39;: 0.7326965517264863, &#39;MI&#39;: 0.006171770470542263, &#39;CORRELATION&#39;: -0.020630168509677818}, &#39;times&#39;: {&#39;contamination&#39;: 0.042899370193481445, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.479795694351196}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0441472017887297, &#39;MAE&#39;: 0.7599852461729673, &#39;MI&#39;: 0.01121013333181846, &#39;CORRELATION&#39;: -0.007513931343350665}, &#39;times&#39;: {&#39;contamination&#39;: 0.17329692840576172, &#39;optimization&#39;: 0, &#39;imputation&#39;: 50.439927101135254}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0379347892718205, &#39;MAE&#39;: 0.757440007226372, &#39;MI&#39;: 0.0035880775657246428, &#39;CORRELATION&#39;: -0.0014975078469404196}, &#39;times&#39;: {&#39;contamination&#39;: 0.6166613101959229, &#39;optimization&#39;: 0, &#39;imputation&#39;: 50.66455388069153}}}}}}}</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+
+    <span class="k">def</span> <span class="nf">_config_optimization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">opti_mean</span><span class="p">,</span> <span class="n">ts_test</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">block_size_mcar</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Configure and execute optimization for selected imputation algorithm and pattern.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        opti_mean : float</span>
+<span class="sd">            Mean parameter for contamination.</span>
+<span class="sd">        ts_test : TimeSeries</span>
+<span class="sd">            TimeSeries object containing dataset.</span>
+<span class="sd">        pattern : str</span>
+<span class="sd">            Type of contamination pattern (e.g., &quot;mcar&quot;, &quot;mp&quot;, &quot;blackout&quot;).</span>
+<span class="sd">        algorithm : str</span>
+<span class="sd">            Imputation algorithm to use.</span>
+<span class="sd">        block_size_mcar : int</span>
+<span class="sd">            Size of blocks removed in MCAR</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        BaseImputer</span>
+<span class="sd">            Configured imputer instance with optimal parameters.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="k">if</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
+            <span class="n">incomp_data_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span>
+                                                          <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size_mcar</span><span class="p">,</span>
+                                                          <span class="n">seed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
+            <span class="n">incomp_data_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span>
+                                                                        <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">incomp_data_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">blackout</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">)</span>
+
+        <span class="n">i_opti</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;cdrec&quot;</span><span class="p">:</span>
+            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">incomp_data_opti</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;stmvl&quot;</span><span class="p">:</span>
+            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">incomp_data_opti</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;iim&quot;</span><span class="p">:</span>
+            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">incomp_data_opti</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mrnn&quot;</span><span class="p">:</span>
+            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">incomp_data_opti</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
+            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">MeanImpute</span><span class="p">(</span><span class="n">incomp_data_opti</span><span class="p">)</span>
+
+        <span class="k">return</span> <span class="n">i_opti</span>
+
+<div class="viewcode-block" id="Benchmark.average_runs_by_names">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.average_runs_by_names">[docs]</a>
+    <span class="k">def</span> <span class="nf">average_runs_by_names</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Average the results of all runs depending on the dataset</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        data : list</span>
+<span class="sd">            list of dictionary containing the results of the benchmark runs.</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        list</span>
+<span class="sd">            list of dictionary containing the results of the benchmark runs averaged by datasets.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">results_avg</span><span class="p">,</span> <span class="n">all_names</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span>
+
+        <span class="c1"># Extract dataset names</span>
+        <span class="k">for</span> <span class="n">dictionary</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
+            <span class="n">all_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">dictionary</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
+            <span class="n">dataset_name</span> <span class="o">=</span> <span class="n">all_keys</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+            <span class="n">all_names</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dataset_name</span><span class="p">)</span>
+
+        <span class="c1"># Get unique dataset names</span>
+        <span class="n">unique_names</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">all_names</span><span class="p">))</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;All dataset names:&quot;</span><span class="p">,</span> <span class="o">*</span><span class="n">all_names</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Unique dataset names:&quot;</span><span class="p">,</span> <span class="o">*</span><span class="n">unique_names</span><span class="p">)</span>
+
+        <span class="c1"># Initialize and populate the split matrix</span>
+        <span class="n">split</span> <span class="o">=</span> <span class="p">[[</span><span class="mi">0</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">all_names</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">name</span><span class="p">))]</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">unique_names</span><span class="p">]</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">unique_names</span><span class="p">):</span>
+            <span class="n">x</span> <span class="o">=</span> <span class="mi">0</span>
+            <span class="k">for</span> <span class="n">y</span><span class="p">,</span> <span class="n">match</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">all_names</span><span class="p">):</span>
+                <span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="n">match</span><span class="p">:</span>
+                    <span class="n">split</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">y</span><span class="p">]</span>
+                    <span class="n">x</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="c1"># Iterate over the split matrix to calculate averages</span>
+        <span class="k">for</span> <span class="n">datasets</span> <span class="ow">in</span> <span class="n">split</span><span class="p">:</span>
+            <span class="n">tmp</span> <span class="o">=</span> <span class="p">[</span><span class="n">dataset</span> <span class="k">for</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="n">datasets</span> <span class="k">if</span> <span class="n">dataset</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">]</span>
+            <span class="n">merged_dict</span> <span class="o">=</span> <span class="p">{}</span>
+            <span class="n">count</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span>
+
+            <span class="c1"># Process and calculate averages</span>
+            <span class="k">for</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="n">tmp</span><span class="p">:</span>
+                <span class="k">for</span> <span class="n">outer_key</span><span class="p">,</span> <span class="n">outer_value</span> <span class="ow">in</span> <span class="n">dataset</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                    <span class="k">for</span> <span class="n">middle_key</span><span class="p">,</span> <span class="n">middle_value</span> <span class="ow">in</span> <span class="n">outer_value</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                        <span class="k">for</span> <span class="n">mean_key</span><span class="p">,</span> <span class="n">mean_value</span> <span class="ow">in</span> <span class="n">middle_value</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                            <span class="k">for</span> <span class="n">method_key</span><span class="p">,</span> <span class="n">method_value</span> <span class="ow">in</span> <span class="n">mean_value</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                <span class="k">for</span> <span class="n">level_key</span><span class="p">,</span> <span class="n">level_value</span> <span class="ow">in</span> <span class="n">method_value</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                    <span class="c1"># Initialize scores and times if not already initialized</span>
+                                    <span class="n">merger</span> <span class="o">=</span> <span class="n">merged_dict</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">outer_key</span><span class="p">,</span> <span class="p">{}</span>
+                                                                    <span class="p">)</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">middle_key</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">mean_key</span><span class="p">,</span> <span class="p">{}</span>
+                                                                                                            <span class="p">)</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span>
+                                        <span class="n">method_key</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">level_key</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;scores&quot;</span><span class="p">:</span> <span class="p">{},</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="p">{}})</span>
+
+                                    <span class="c1"># Add scores and times</span>
+                                    <span class="k">for</span> <span class="n">score_key</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">level_value</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                        <span class="n">merger</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">][</span><span class="n">score_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">merger</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">score_key</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">v</span> <span class="o">/</span> <span class="n">count</span><span class="p">)</span>
+                                    <span class="k">for</span> <span class="n">time_key</span><span class="p">,</span> <span class="n">time_value</span> <span class="ow">in</span> <span class="n">level_value</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                        <span class="n">merger</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="n">time_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span>
+                                                    <span class="n">merger</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">time_key</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="n">time_value</span> <span class="o">/</span> <span class="n">count</span><span class="p">)</span>
+
+            <span class="n">results_avg</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">merged_dict</span><span class="p">)</span>
+
+        <span class="k">return</span> <span class="n">results_avg</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.avg_results">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.avg_results">[docs]</a>
+    <span class="k">def</span> <span class="nf">avg_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">datasets</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Calculate the average of all metrics and times across multiple datasets.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        datasets : dict</span>
+<span class="sd">            Multiple dataset dictionaries to be averaged.</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        List</span>
+<span class="sd">            Matrix with averaged scores and times for all levels, list of algorithms, list of datasets</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="c1"># Step 1: Compute average RMSE across runs for each dataset and algorithm</span>
+        <span class="n">aggregated_data</span> <span class="o">=</span> <span class="p">{}</span>
+
+        <span class="k">for</span> <span class="n">runs</span> <span class="ow">in</span> <span class="n">datasets</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">dataset_items</span> <span class="ow">in</span> <span class="n">runs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                <span class="k">if</span> <span class="n">dataset</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="p">:</span>
+                    <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+
+                <span class="k">for</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">pattern_items</span> <span class="ow">in</span> <span class="n">dataset_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                    <span class="k">for</span> <span class="n">algo</span><span class="p">,</span> <span class="n">algo_data</span> <span class="ow">in</span> <span class="n">pattern_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                        <span class="k">if</span> <span class="n">algo</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">]:</span>
+                            <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
+
+                        <span class="k">for</span> <span class="n">missing_values</span><span class="p">,</span> <span class="n">missing_values_item</span> <span class="ow">in</span> <span class="n">algo_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                            <span class="k">for</span> <span class="n">param</span><span class="p">,</span> <span class="n">param_data</span> <span class="ow">in</span> <span class="n">missing_values_item</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                <span class="n">rmse</span> <span class="o">=</span> <span class="n">param_data</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">][</span><span class="s2">&quot;RMSE&quot;</span><span class="p">]</span>
+                                <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rmse</span><span class="p">)</span>
+
+        <span class="c1"># Step 2: Compute averages using NumPy</span>
+        <span class="n">average_rmse_matrix</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">algos</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
+            <span class="k">for</span> <span class="n">algo</span><span class="p">,</span> <span class="n">rmse_values</span> <span class="ow">in</span> <span class="n">algos</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                <span class="n">rmse_array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">rmse_values</span><span class="p">)</span>
+                <span class="n">avg_rmse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">rmse_array</span><span class="p">)</span>
+                <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span> <span class="o">=</span> <span class="n">avg_rmse</span>
+
+        <span class="c1"># Step 3: Create a matrix representation of datasets and algorithms</span>
+        <span class="n">datasets_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">average_rmse_matrix</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
+        <span class="n">algorithms</span> <span class="o">=</span> <span class="p">{</span><span class="n">algo</span> <span class="k">for</span> <span class="n">algos</span> <span class="ow">in</span> <span class="n">average_rmse_matrix</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">algo</span> <span class="ow">in</span> <span class="n">algos</span><span class="p">}</span>
+        <span class="n">algorithms_list</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">algorithms</span><span class="p">)</span>
+
+        <span class="c1"># Prepare a NumPy matrix</span>
+        <span class="n">comprehensive_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">datasets_list</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">algorithms_list</span><span class="p">)))</span>
+
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">datasets_list</span><span class="p">):</span>
+            <span class="k">for</span> <span class="n">j</span><span class="p">,</span> <span class="n">algo</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">algorithms_list</span><span class="p">):</span>
+                <span class="n">comprehensive_matrix</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">algo</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">)</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of datasets:&quot;</span><span class="p">,</span> <span class="n">datasets_list</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of algorithms:&quot;</span><span class="p">,</span> <span class="n">algorithms_list</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of matrix:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">comprehensive_matrix</span><span class="p">)</span>
+
+        <span class="k">return</span> <span class="n">comprehensive_matrix</span><span class="p">,</span> <span class="n">algorithms_list</span><span class="p">,</span> <span class="n">datasets_list</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.generate_heatmap">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_heatmap">[docs]</a>
+    <span class="k">def</span> <span class="nf">generate_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scores_list</span><span class="p">,</span> <span class="n">algos</span><span class="p">,</span> <span class="n">sets</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Generate and save RMSE matrix in HD quality.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        scores_list : np.ndarray</span>
+<span class="sd">            2D numpy array containing RMSE values.</span>
+<span class="sd">        algos : list of str</span>
+<span class="sd">            List of algorithm names (columns of the heatmap).</span>
+<span class="sd">        sets : list of str</span>
+<span class="sd">            List of dataset names (rows of the heatmap).</span>
+<span class="sd">        save_dir : str, optional</span>
+<span class="sd">            Directory to save the generated plot (default is &quot;./reports&quot;).</span>
+<span class="sd">        display : bool, optional</span>
+<span class="sd">            Display or not the plot</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        Bool</span>
+<span class="sd">            True if the matrix has been generated</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">save_dir</span><span class="p">):</span>
+            <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">)</span>
+
+        <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
+        <span class="n">cmap</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">Greys</span>
+        <span class="n">norm</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">Normalize</span><span class="p">(</span><span class="n">vmin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">vmax</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>  <span class="c1"># Normalizing values between 0 and 2 (RMSE)</span>
+
+        <span class="c1"># Create the heatmap</span>
+        <span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">scores_list</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cmap</span><span class="p">,</span> <span class="n">norm</span><span class="o">=</span><span class="n">norm</span><span class="p">,</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">&#39;auto&#39;</span><span class="p">)</span>
+
+        <span class="c1"># Add color bar for reference</span>
+        <span class="n">cbar</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s1">&#39;vertical&#39;</span><span class="p">)</span>
+        <span class="n">cbar</span><span class="o">.</span><span class="n">set_label</span><span class="p">(</span><span class="s1">&#39;RMSE&#39;</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">270</span><span class="p">,</span> <span class="n">labelpad</span><span class="o">=</span><span class="mi">15</span><span class="p">)</span>
+
+        <span class="c1"># Set the tick labels</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">algos</span><span class="p">)))</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">(</span><span class="n">algos</span><span class="p">)</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">sets</span><span class="p">)))</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_yticklabels</span><span class="p">(</span><span class="n">sets</span><span class="p">)</span>
+
+        <span class="c1"># Add titles and labels</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;ImputeGAP Algorithms Comparison&#39;</span><span class="p">)</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;Algorithms&#39;</span><span class="p">)</span>
+        <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">)</span>
+
+        <span class="c1"># Show values on the heatmap</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">sets</span><span class="p">)):</span>
+            <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">algos</span><span class="p">)):</span>
+                <span class="n">ax</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">j</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">scores_list</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="p">]</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
+                        <span class="n">ha</span><span class="o">=</span><span class="s1">&#39;center&#39;</span><span class="p">,</span> <span class="n">va</span><span class="o">=</span><span class="s1">&#39;center&#39;</span><span class="p">,</span>
+                        <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">scores_list</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">)</span>  <span class="c1"># for visibility</span>
+
+        <span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;benchmarking_rmse.jpg&quot;</span>
+        <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+        <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s1">&#39;tight&#39;</span><span class="p">)</span>  <span class="c1"># Save in HD with tight layout</span>
+
+        <span class="c1"># Show the plot</span>
+        <span class="k">if</span> <span class="n">display</span><span class="p">:</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="k">return</span> <span class="kc">True</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.generate_reports_txt">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_reports_txt">[docs]</a>
+    <span class="k">def</span> <span class="nf">generate_reports_txt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">run</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Generate and save a text report of metrics and timing for each dataset, algorithm, and pattern.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        runs_plots_scores : dict</span>
+<span class="sd">            Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</span>
+<span class="sd">        save_dir : str, optional</span>
+<span class="sd">            Directory to save the reports file (default is &quot;./reports&quot;).</span>
+<span class="sd">        dataset : str, optional</span>
+<span class="sd">            Name of the data for the report name.</span>
+<span class="sd">        run : int, optional</span>
+<span class="sd">            Number of the run.</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        None</span>
+
+<span class="sd">        Notes</span>
+<span class="sd">        -----</span>
+<span class="sd">        The report is saved in a &quot;report.txt&quot; file in `save_dir`, organized in sections with headers and results.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;run&quot;</span><span class="p">,</span> <span class="n">run</span><span class="p">)</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="n">save_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;report_</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2">.txt&quot;</span><span class="p">)</span>
+        <span class="n">current_time</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)</span>
+
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">save_path</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
+            <span class="c1"># Write an overall header for the report</span>
+            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Report for Dataset: </span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Generated on: </span><span class="si">{</span><span class="n">current_time</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">run</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Run number: </span><span class="si">{</span><span class="n">run</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;=&quot;</span> <span class="o">*</span> <span class="mi">120</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="n">metrics</span> <span class="o">=</span> <span class="p">{</span>
+                <span class="s2">&quot;RMSE&quot;</span><span class="p">:</span> <span class="s2">&quot;Root Mean Square Error - Measures the average magnitude of error.&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;MAE&quot;</span><span class="p">:</span> <span class="s2">&quot;Mean Absolute Error - Measures the average absolute error.&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;MI&quot;</span><span class="p">:</span> <span class="s2">&quot;Mutual Information - Indicates dependency between variables.&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;CORRELATION&quot;</span><span class="p">:</span> <span class="s2">&quot;Correlation Coefficient - Indicates linear relationship between variables.&quot;</span>
+            <span class="p">}</span>
+
+            <span class="k">for</span> <span class="n">metric</span><span class="p">,</span> <span class="n">description</span> <span class="ow">in</span> <span class="n">metrics</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                <span class="c1"># Write the metric description</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">description</span><span class="si">}</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                <span class="n">column_widths</span> <span class="o">=</span> <span class="p">[</span><span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">25</span><span class="p">]</span>
+
+                <span class="c1"># Create a table header</span>
+                <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;Dataset&quot;</span><span class="p">,</span> <span class="s2">&quot;Algorithm&quot;</span><span class="p">,</span> <span class="s2">&quot;Optimizer&quot;</span><span class="p">,</span> <span class="s2">&quot;Pattern&quot;</span><span class="p">,</span> <span class="s2">&quot;X Value&quot;</span><span class="p">,</span> <span class="n">metric</span><span class="p">]</span>
+                <span class="n">header_row</span> <span class="o">=</span> <span class="s2">&quot;|&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">header</span><span class="si">:</span><span class="s2">^</span><span class="si">{</span><span class="n">width</span><span class="si">}}</span><span class="s2"> &quot;</span> <span class="k">for</span> <span class="n">header</span><span class="p">,</span> <span class="n">width</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">headers</span><span class="p">,</span> <span class="n">column_widths</span><span class="p">))</span>
+                <span class="n">separator_row</span> <span class="o">=</span> <span class="s2">&quot;+&quot;</span> <span class="o">+</span> <span class="s2">&quot;+&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="s1">&#39;-&#39;</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">width</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">width</span> <span class="ow">in</span> <span class="n">column_widths</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;+&quot;</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">separator_row</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;|</span><span class="si">{</span><span class="n">header_row</span><span class="si">}</span><span class="s2">|</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">separator_row</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                <span class="c1"># Extract and write results for the current metric</span>
+                <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">algo_items</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                    <span class="k">for</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer_items</span> <span class="ow">in</span> <span class="n">algo_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                        <span class="k">for</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">pattern_data</span> <span class="ow">in</span> <span class="n">optimizer_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                            <span class="k">for</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">x_data_items</span> <span class="ow">in</span> <span class="n">pattern_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">x_data_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                    <span class="n">value</span> <span class="o">=</span> <span class="n">values</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;scores&quot;</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">metric</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+                                    <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+                                        <span class="n">value</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">.10f</span><span class="si">}</span><span class="s2">&quot;</span>  <span class="c1"># Limit to 10 decimal places</span>
+                                        <span class="n">row_values</span> <span class="o">=</span> <span class="p">[</span><span class="n">dataset</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">value</span><span class="p">]</span>
+                                        <span class="n">row</span> <span class="o">=</span> <span class="s2">&quot;|&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot; </span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">^</span><span class="si">{</span><span class="n">width</span><span class="si">}}</span><span class="s2"> &quot;</span> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">width</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row_values</span><span class="p">,</span> <span class="n">column_widths</span><span class="p">))</span>
+                                        <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;|</span><span class="si">{</span><span class="n">row</span><span class="si">}</span><span class="s2">|</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">separator_row</span><span class="si">}</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;Dictionary of Results:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Report recorded in </span><span class="si">{</span><span class="n">save_path</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.generate_reports_excel">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_reports_excel">[docs]</a>
+    <span class="k">def</span> <span class="nf">generate_reports_excel</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">run</span><span class="o">=-</span><span class="mi">1</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Generate and save an Excel-like text report of metrics and timing for each dataset, algorithm, and pattern.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        runs_plots_scores : dict</span>
+<span class="sd">            Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</span>
+<span class="sd">        save_dir : str, optional</span>
+<span class="sd">            Directory to save the Excel-like file (default is &quot;./reports&quot;).</span>
+<span class="sd">        dataset : str, optional</span>
+<span class="sd">            Name of the data for the Excel-like file name.</span>
+<span class="sd">        run : int, optional</span>
+<span class="sd">            Number of the run</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        None</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="n">save_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;report_</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2">.xlsx&quot;</span><span class="p">)</span>
+
+        <span class="c1"># Create an Excel workbook</span>
+        <span class="n">workbook</span> <span class="o">=</span> <span class="n">xlsxwriter</span><span class="o">.</span><span class="n">Workbook</span><span class="p">(</span><span class="n">save_path</span><span class="p">)</span>
+
+        <span class="c1"># Add a summary sheet with the header, creation date, dictionary content, and links to other sheets</span>
+        <span class="n">summary_sheet</span> <span class="o">=</span> <span class="n">workbook</span><span class="o">.</span><span class="n">add_worksheet</span><span class="p">(</span><span class="s2">&quot;Summary&quot;</span><span class="p">)</span>
+        <span class="n">current_time</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S&quot;</span><span class="p">)</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">set_column</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
+
+        <span class="c1"># Add the logo using importlib.resources</span>
+        <span class="n">logo_path</span> <span class="o">=</span> <span class="n">importlib</span><span class="o">.</span><span class="n">resources</span><span class="o">.</span><span class="n">files</span><span class="p">(</span><span class="s2">&quot;imputegap.assets&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">joinpath</span><span class="p">(</span><span class="s2">&quot;logo_imputegap.png&quot;</span><span class="p">)</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">insert_image</span><span class="p">(</span><span class="s2">&quot;A1&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">logo_path</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;x_scale&quot;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">&quot;y_scale&quot;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">})</span>
+
+        <span class="c1"># Title and header</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;IMPUTEGAP&quot;</span><span class="p">)</span>  <span class="c1"># Title below the logo</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Report for Dataset&quot;</span><span class="p">)</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">dataset</span><span class="p">)</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Generated on&quot;</span><span class="p">)</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">current_time</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">run</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Run Number&quot;</span><span class="p">)</span>
+            <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">run</span><span class="p">)</span>
+
+        <span class="c1"># Add links to metric sheets</span>
+        <span class="n">row</span> <span class="o">=</span> <span class="mi">12</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Metric Sheets:&quot;</span><span class="p">)</span>
+        <span class="n">row</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="p">{</span>
+            <span class="s2">&quot;RMSE&quot;</span><span class="p">:</span> <span class="s2">&quot;Root Mean Square Error - Measures the average magnitude of error.&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;MAE&quot;</span><span class="p">:</span> <span class="s2">&quot;Mean Absolute Error - Measures the average absolute error.&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;MI&quot;</span><span class="p">:</span> <span class="s2">&quot;Mutual Information - Indicates dependency between variables.&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;CORRELATION&quot;</span><span class="p">:</span> <span class="s2">&quot;Correlation Coefficient - Indicates linear relationship between variables.&quot;</span>
+        <span class="p">}</span>
+        <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">metrics</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span>
+            <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write_url</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;internal:&#39;</span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2">&#39;!A1&quot;</span><span class="p">,</span> <span class="n">string</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;Go to </span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2"> Sheet&quot;</span><span class="p">)</span>
+            <span class="n">row</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="c1"># Write the dictionary content</span>
+        <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">row</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;Dictionary of Results&quot;</span><span class="p">)</span>
+        <span class="n">row</span> <span class="o">+=</span> <span class="mi">2</span>
+
+        <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">key</span><span class="p">))</span>
+            <span class="n">summary_sheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">))</span>
+            <span class="n">row</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="k">for</span> <span class="n">metric</span><span class="p">,</span> <span class="n">description</span> <span class="ow">in</span> <span class="n">metrics</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="c1"># Create a worksheet for each metric</span>
+            <span class="n">worksheet</span> <span class="o">=</span> <span class="n">workbook</span><span class="o">.</span><span class="n">add_worksheet</span><span class="p">(</span><span class="n">metric</span><span class="p">)</span>
+
+            <span class="c1"># Add the logo to each metric sheet</span>
+            <span class="n">worksheet</span><span class="o">.</span><span class="n">insert_image</span><span class="p">(</span><span class="s2">&quot;A1&quot;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">logo_path</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;x_scale&quot;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">,</span> <span class="s2">&quot;y_scale&quot;</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">})</span>
+
+            <span class="c1"># Write the metric description at the top and add IMPUTEGAP header</span>
+            <span class="n">worksheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s2">&quot;IMPUTEGAP&quot;</span><span class="p">)</span>
+            <span class="n">worksheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">description</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="c1"># Define consistent column headers and widths</span>
+            <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;Dataset&quot;</span><span class="p">,</span> <span class="s2">&quot;Algorithm&quot;</span><span class="p">,</span> <span class="s2">&quot;Optimizer&quot;</span><span class="p">,</span> <span class="s2">&quot;Pattern&quot;</span><span class="p">,</span> <span class="s2">&quot;X Value&quot;</span><span class="p">,</span> <span class="n">metric</span><span class="p">]</span>
+            <span class="n">column_widths</span> <span class="o">=</span> <span class="p">[</span><span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">20</span><span class="p">]</span>  <span class="c1"># Adjust widths for Excel</span>
+
+            <span class="c1"># Write the headers</span>
+            <span class="k">for</span> <span class="n">col</span><span class="p">,</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">width</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">headers</span><span class="p">,</span> <span class="n">column_widths</span><span class="p">)):</span>
+                <span class="n">worksheet</span><span class="o">.</span><span class="n">set_column</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">width</span><span class="p">)</span>
+                <span class="n">worksheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">header</span><span class="p">)</span>
+
+            <span class="c1"># Populate the data</span>
+            <span class="n">row</span> <span class="o">=</span> <span class="mi">9</span>
+            <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">algo_items</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                <span class="k">for</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer_items</span> <span class="ow">in</span> <span class="n">algo_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                    <span class="k">for</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">pattern_data</span> <span class="ow">in</span> <span class="n">optimizer_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                        <span class="k">for</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">x_data_items</span> <span class="ow">in</span> <span class="n">pattern_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                            <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">x_data_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                <span class="n">value</span> <span class="o">=</span> <span class="n">values</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;scores&quot;</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">metric</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+                                <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+                                    <span class="n">value</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">.10f</span><span class="si">}</span><span class="s2">&quot;</span>
+                                    <span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="n">dataset</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="n">value</span><span class="p">]</span>
+                                    <span class="k">for</span> <span class="n">col</span><span class="p">,</span> <span class="n">cell_value</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">data</span><span class="p">):</span>
+                                        <span class="n">worksheet</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">cell_value</span><span class="p">)</span>
+                                    <span class="n">row</span> <span class="o">+=</span> <span class="mi">1</span>
+
+        <span class="c1"># Close the workbook</span>
+        <span class="n">workbook</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Excel report recorded in </span><span class="si">{</span><span class="n">save_path</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.generate_plots">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.generate_plots">[docs]</a>
+    <span class="k">def</span> <span class="nf">generate_plots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">ticks</span><span class="p">,</span> <span class="n">subplot</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Generate and save plots for each metric and pattern based on provided scores.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        runs_plots_scores : dict</span>
+<span class="sd">            Dictionary containing scores and timing information for each dataset, pattern, and algorithm.</span>
+<span class="sd">        ticks : list of float</span>
+<span class="sd">            List of missing rates for contamination.</span>
+<span class="sd">        subplot : bool, optional</span>
+<span class="sd">            If True, generates a single figure with subplots for all metrics (default is False).</span>
+<span class="sd">        save_dir : str, optional</span>
+<span class="sd">            Directory to save generated plots (default is &quot;./reports&quot;).</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        None</span>
+
+<span class="sd">        Notes</span>
+<span class="sd">        -----</span>
+<span class="sd">        Saves generated plots in `save_dir`, categorized by dataset, pattern, and metric.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">,</span> <span class="s2">&quot;MAE&quot;</span><span class="p">,</span> <span class="s2">&quot;MI&quot;</span><span class="p">,</span> <span class="s2">&quot;CORRELATION&quot;</span><span class="p">,</span> <span class="s2">&quot;imputation_time&quot;</span><span class="p">,</span> <span class="s2">&quot;log_imputation&quot;</span><span class="p">]</span>
+
+        <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">pattern_items</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+            <span class="k">for</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">algo_items</span> <span class="ow">in</span> <span class="n">pattern_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+
+                <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                    <span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">nrows</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">ncols</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">12</span><span class="p">))</span>  <span class="c1"># Adjusted figsize</span>
+                    <span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span><span class="o">.</span><span class="n">ravel</span><span class="p">()</span>  <span class="c1"># Flatten the 2D array of axes to a 1D array</span>
+
+                <span class="c1"># Iterate over each metric, generating separate plots, including new timing metrics</span>
+                <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">metric</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">metrics</span><span class="p">):</span>
+
+                    <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                        <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">axes</span><span class="p">):</span>
+                            <span class="n">ax</span> <span class="o">=</span> <span class="n">axes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
+                        <span class="k">else</span><span class="p">:</span>
+                            <span class="k">break</span>  <span class="c1"># Prevent index out of bounds if metrics exceed subplot slots</span>
+                    <span class="k">else</span><span class="p">:</span>
+                        <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
+                        <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span>
+
+                    <span class="n">has_data</span> <span class="o">=</span> <span class="kc">False</span>  <span class="c1"># Flag to check if any data is added to the plot</span>
+
+                    <span class="c1"># Iterate over each algorithm and plot them in the same figure</span>
+                    <span class="k">for</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer_items</span> <span class="ow">in</span> <span class="n">algo_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                        <span class="n">x_vals</span> <span class="o">=</span> <span class="p">[]</span>
+                        <span class="n">y_vals</span> <span class="o">=</span> <span class="p">[]</span>
+                        <span class="k">for</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">x_data</span> <span class="ow">in</span> <span class="n">optimizer_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                            <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">x_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
+                                <span class="c1"># Differentiate between score metrics and timing metrics</span>
+                                <span class="k">if</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;imputation_time&quot;</span> <span class="ow">and</span> <span class="s2">&quot;imputation&quot;</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]:</span>
+                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="s2">&quot;imputation&quot;</span><span class="p">])</span>
+                                <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;log_imputation&quot;</span> <span class="ow">and</span> <span class="s2">&quot;log_imputation&quot;</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]:</span>
+                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="s2">&quot;log_imputation&quot;</span><span class="p">])</span>
+                                <span class="k">elif</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">]:</span>
+                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">][</span><span class="n">metric</span><span class="p">])</span>
+
+                        <span class="c1"># Only plot if there are values to plot</span>
+                        <span class="k">if</span> <span class="n">x_vals</span> <span class="ow">and</span> <span class="n">y_vals</span><span class="p">:</span>
+                            <span class="c1"># Sort x and y values by x for correct spacing</span>
+                            <span class="n">sorted_pairs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">))</span>
+                            <span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">sorted_pairs</span><span class="p">)</span>
+
+                            <span class="c1"># Plot each algorithm as a line with scattered points</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">algorithm</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">)</span>
+                            <span class="n">has_data</span> <span class="o">=</span> <span class="kc">True</span>
+
+                    <span class="c1"># Save plot only if there is data to display</span>
+                    <span class="k">if</span> <span class="n">has_data</span><span class="p">:</span>
+                        <span class="n">ylabel_metric</span> <span class="o">=</span> <span class="p">{</span>
+                            <span class="s2">&quot;imputation_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Imputation Time (sec)&quot;</span><span class="p">,</span>
+                            <span class="s2">&quot;log_imputation&quot;</span><span class="p">:</span> <span class="s2">&quot;Imputation Time (log)&quot;</span><span class="p">,</span>
+                        <span class="p">}</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">metric</span><span class="p">,</span> <span class="n">metric</span><span class="p">)</span>
+
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="n">metric</span><span class="p">)</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s2">&quot;Rates&quot;</span><span class="p">)</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="n">ylabel_metric</span><span class="p">)</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_xlim</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.85</span><span class="p">)</span>
+
+                        <span class="c1"># Set y-axis limits with padding below 0 for visibility</span>
+                        <span class="k">if</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;imputation_time&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;log_imputation&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;MAE&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">2.4</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;MI&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">1.85</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;RMSE&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">2.6</span><span class="p">)</span>
+                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;CORRELATION&quot;</span><span class="p">:</span>
+                            <span class="n">ax</span><span class="o">.</span><span class="n">set_ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.75</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">)</span>
+
+                        <span class="c1"># Customize x-axis ticks</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="n">ticks</span><span class="p">)</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">tick</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="si">}</span><span class="s2">%&quot;</span> <span class="k">for</span> <span class="n">tick</span> <span class="ow">in</span> <span class="n">ticks</span><span class="p">])</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span> <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
+
+                    <span class="k">if</span> <span class="ow">not</span> <span class="n">subplot</span><span class="p">:</span>
+                        <span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2">.jpg&quot;</span>
+                        <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+                        <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
+                        <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+                <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                    <span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
+                    <span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">_metrics_subplot.jpg&quot;</span>
+                    <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
+                    <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
+                    <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">All plots recorded in&quot;</span><span class="p">,</span> <span class="n">save_dir</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="Benchmark.eval">
+<a class="viewcode-back" href="../../../imputegap.benchmark.html#imputegap.recovery.benchmark.Benchmark.eval">[docs]</a>
+    <span class="k">def</span> <span class="nf">eval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">algorithms</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;cdrec&quot;</span><span class="p">],</span> <span class="n">datasets</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;eeg-alcohol&quot;</span><span class="p">],</span> <span class="n">patterns</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;mcar&quot;</span><span class="p">],</span> <span class="n">x_axis</span><span class="o">=</span><span class="p">[</span><span class="mf">0.05</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="n">optimizers</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;user_def&quot;</span><span class="p">],</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">runs</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
+<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Execute a comprehensive evaluation of imputation algorithms over multiple datasets and patterns.</span>
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        algorithms : list of str</span>
+<span class="sd">            List of imputation algorithms to test.</span>
+<span class="sd">        datasets : list of str</span>
+<span class="sd">            List of dataset names to evaluate.</span>
+<span class="sd">        patterns : list of str</span>
+<span class="sd">            List of contamination patterns to apply.</span>
+<span class="sd">        x_axis : list of float</span>
+<span class="sd">            List of missing rates for contamination.</span>
+<span class="sd">        optimizers : list of dict</span>
+<span class="sd">            List of optimizers with their configurations.</span>
+<span class="sd">        save_dir : str, optional</span>
+<span class="sd">            Directory to save reports and plots (default is &quot;./reports&quot;).</span>
+<span class="sd">        runs : int, optional</span>
+<span class="sd">            Number of executions with a view to averaging them</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+<span class="sd">        List</span>
+<span class="sd">            List of all runs results, matrix with averaged scores and times for all levels</span>
+
+<span class="sd">        Notes</span>
+<span class="sd">        -----</span>
+<span class="sd">        Runs contamination, imputation, and evaluation, then generates plots and a summary reports.</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;initialization of the comprehensive evaluation. It can take time...</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">run_storage</span> <span class="o">=</span> <span class="p">[]</span>
+        <span class="n">scores_list</span><span class="p">,</span> <span class="n">algos</span><span class="p">,</span> <span class="n">sets</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span>
+
+        <span class="k">for</span> <span class="n">i_run</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">abs</span><span class="p">(</span><span class="n">runs</span><span class="p">)):</span>
+            <span class="k">for</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="n">datasets</span><span class="p">:</span>
+                <span class="n">runs_plots_scores</span> <span class="o">=</span> <span class="p">{}</span>
+                <span class="n">limitation_series</span><span class="p">,</span> <span class="n">limitation_values</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">1000</span>
+                <span class="n">block_size_mcar</span> <span class="o">=</span> <span class="mi">10</span>
+
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;1. evaluation launch for&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span>
+                      <span class="s2">&quot;========================================================</span><span class="se">\n\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                <span class="n">ts_test</span> <span class="o">=</span> <span class="n">TimeSeries</span><span class="p">()</span>
+
+                <span class="n">header</span> <span class="o">=</span> <span class="kc">False</span>
+                <span class="k">if</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;eeg-reading&quot;</span><span class="p">:</span>
+                    <span class="n">header</span> <span class="o">=</span> <span class="kc">True</span>
+                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;drift&quot;</span><span class="p">:</span>
+                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">50</span>
+                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;fmri-objectviewing&quot;</span><span class="p">:</span>
+                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">360</span>
+                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;fmri-stoptask&quot;</span><span class="p">:</span>
+                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">360</span>
+
+                <span class="k">if</span> <span class="n">runs</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">10</span>
+                    <span class="n">limitation_values</span> <span class="o">=</span> <span class="mi">110</span>
+                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;TEST LOADED...&quot;</span><span class="p">)</span>
+
+                <span class="n">ts_test</span><span class="o">.</span><span class="n">load_timeseries</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">utils</span><span class="o">.</span><span class="n">search_path</span><span class="p">(</span><span class="n">dataset</span><span class="p">),</span> <span class="n">max_series</span><span class="o">=</span><span class="n">limitation_series</span><span class="p">,</span>
+                                        <span class="n">max_values</span><span class="o">=</span><span class="n">limitation_values</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="n">header</span><span class="p">)</span>
+
+                <span class="n">start_time_opti</span><span class="p">,</span> <span class="n">end_time_opti</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span>
+                <span class="n">M</span><span class="p">,</span> <span class="n">N</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
+
+                <span class="k">if</span> <span class="n">N</span> <span class="o">&lt;</span> <span class="mi">250</span><span class="p">:</span>
+                    <span class="n">block_size_mcar</span> <span class="o">=</span> <span class="mi">2</span>
+
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;1. normalization of &quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                <span class="n">ts_test</span><span class="o">.</span><span class="n">normalize</span><span class="p">()</span>
+
+                <span class="k">for</span> <span class="n">pattern</span> <span class="ow">in</span> <span class="n">patterns</span><span class="p">:</span>
+                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">2. contamination of&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="s2">&quot;with pattern&quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                    <span class="k">for</span> <span class="n">algorithm</span> <span class="ow">in</span> <span class="n">algorithms</span><span class="p">:</span>
+                        <span class="n">has_been_optimized</span> <span class="o">=</span> <span class="kc">False</span>
+                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">3. algorithm selected&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">x_axis</span><span class="p">:</span>
+                            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">4. missing values (series&amp;values) set to&quot;</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="s2">&quot;for x_axis</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                            <span class="n">start_time_contamination</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
+                            <span class="k">if</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
+                                <span class="n">incomp_data</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
+                                                                         <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size_mcar</span><span class="p">,</span>
+                                                                         <span class="n">seed</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+                            <span class="k">elif</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
+                                <span class="n">incomp_data</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span>
+                                                                                       <span class="n">series_rate</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
+                                                                                       <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">)</span>
+                            <span class="k">else</span><span class="p">:</span>
+                                <span class="n">incomp_data</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">blackout</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">)</span>
+                            <span class="n">end_time_contamination</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+                            <span class="k">for</span> <span class="n">optimizer</span> <span class="ow">in</span> <span class="n">optimizers</span><span class="p">:</span>
+                                <span class="n">algo</span> <span class="o">=</span> <span class="kc">None</span>
+                                <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;cdrec&quot;</span><span class="p">:</span>
+                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;stmvl&quot;</span><span class="p">:</span>
+                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;iim&quot;</span><span class="p">:</span>
+                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mrnn&quot;</span><span class="p">:</span>
+                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
+                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">MeanImpute</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
+
+                                <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">optimizer</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
+                                    <span class="n">optimizer_gt</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_data&quot;</span><span class="p">:</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="o">**</span><span class="n">optimizer</span><span class="p">}</span>
+                                    <span class="n">optimizer_value</span> <span class="o">=</span> <span class="n">optimizer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;optimizer&#39;</span><span class="p">)</span>  <span class="c1"># or optimizer[&#39;optimizer&#39;]</span>
+
+                                    <span class="k">if</span> <span class="ow">not</span> <span class="n">has_been_optimized</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="o">!=</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
+                                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">5. AutoML to set the parameters&quot;</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                                        <span class="n">start_time_opti</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
+                                        <span class="n">i_opti</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_config_optimization</span><span class="p">(</span><span class="mf">0.25</span><span class="p">,</span> <span class="n">ts_test</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span>
+                                                                           <span class="n">block_size_mcar</span><span class="p">)</span>
+                                        <span class="n">i_opti</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">optimizer_gt</span><span class="p">)</span>
+                                        <span class="n">utils</span><span class="o">.</span><span class="n">save_optimization</span><span class="p">(</span><span class="n">optimal_params</span><span class="o">=</span><span class="n">i_opti</span><span class="o">.</span><span class="n">parameters</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="n">algorithm</span><span class="p">,</span>
+                                                                <span class="n">dataset</span><span class="o">=</span><span class="n">dataset</span><span class="p">,</span> <span class="n">optimizer</span><span class="o">=</span><span class="s2">&quot;e&quot;</span><span class="p">)</span>
+
+                                        <span class="n">has_been_optimized</span> <span class="o">=</span> <span class="kc">True</span>
+                                        <span class="n">end_time_opti</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+                                    <span class="k">else</span><span class="p">:</span>
+                                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">5. AutoML already optimized : &quot;</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+                                    <span class="k">if</span> <span class="n">algorithm</span> <span class="o">!=</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
+                                        <span class="n">opti_params</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;optimal&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="n">algorithm</span><span class="p">,</span>
+                                                                            <span class="n">dataset</span><span class="o">=</span><span class="n">dataset</span><span class="p">,</span> <span class="n">optimizer</span><span class="o">=</span><span class="s2">&quot;e&quot;</span><span class="p">)</span>
+                                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">6. imputation&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;with optimal parameters&quot;</span><span class="p">,</span> <span class="o">*</span><span class="n">opti_params</span><span class="p">)</span>
+
+                                    <span class="k">else</span><span class="p">:</span>
+                                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">5. MeanImpute launches without optimal params&quot;</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="s2">&quot;for&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                                        <span class="n">opti_params</span> <span class="o">=</span> <span class="kc">None</span>
+                                <span class="k">else</span><span class="p">:</span>
+                                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">5. Default parameters have been set the parameters&quot;</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="s2">&quot;for&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
+                                    <span class="n">optimizer_value</span> <span class="o">=</span> <span class="n">optimizer</span>
+                                    <span class="n">opti_params</span> <span class="o">=</span> <span class="kc">None</span>
+
+                                <span class="n">start_time_imputation</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+                                <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">params</span><span class="o">=</span><span class="n">opti_params</span><span class="p">)</span>
+                                <span class="n">end_time_imputation</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
+
+                                <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">recov_data</span><span class="o">=</span><span class="n">algo</span><span class="o">.</span><span class="n">recov_data</span><span class="p">)</span>
+
+                                <span class="n">time_contamination</span> <span class="o">=</span> <span class="n">end_time_contamination</span> <span class="o">-</span> <span class="n">start_time_contamination</span>
+                                <span class="n">time_opti</span> <span class="o">=</span> <span class="n">end_time_opti</span> <span class="o">-</span> <span class="n">start_time_opti</span>
+                                <span class="n">time_imputation</span> <span class="o">=</span> <span class="n">end_time_imputation</span> <span class="o">-</span> <span class="n">start_time_imputation</span>
+                                <span class="n">log_time_imputation</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">time_imputation</span><span class="p">)</span> <span class="k">if</span> <span class="n">time_imputation</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="k">else</span> <span class="kc">None</span>
+
+                                <span class="n">dic_timing</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;contamination&quot;</span><span class="p">:</span> <span class="n">time_contamination</span><span class="p">,</span> <span class="s2">&quot;optimization&quot;</span><span class="p">:</span> <span class="n">time_opti</span><span class="p">,</span> <span class="s2">&quot;imputation&quot;</span><span class="p">:</span> <span class="n">time_imputation</span><span class="p">,</span> <span class="s2">&quot;log_imputation&quot;</span><span class="p">:</span> <span class="n">log_time_imputation</span><span class="p">}</span>
+
+                                <span class="n">dataset_s</span> <span class="o">=</span> <span class="n">dataset</span>
+                                <span class="k">if</span> <span class="s2">&quot;-&quot;</span> <span class="ow">in</span> <span class="n">dataset</span><span class="p">:</span>
+                                    <span class="n">dataset_s</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
+
+                                <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">dataset_s</span><span class="p">),</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">pattern</span><span class="p">),</span>
+                                                                                            <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span>
+                                    <span class="nb">str</span><span class="p">(</span><span class="n">algorithm</span><span class="p">),</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">optimizer_value</span><span class="p">),</span> <span class="p">{})[</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)]</span> <span class="o">=</span> <span class="p">{</span>
+                                    <span class="s2">&quot;scores&quot;</span><span class="p">:</span> <span class="n">algo</span><span class="o">.</span><span class="n">metrics</span><span class="p">,</span>
+                                    <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="n">dic_timing</span>
+                                <span class="p">}</span>
+
+                                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">runs_plots_scores&quot;</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">)</span>
+
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">runs_plots_scores : &quot;</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">)</span>
+                <span class="n">save_dir_runs</span> <span class="o">=</span> <span class="n">save_dir</span> <span class="o">+</span> <span class="s2">&quot;/run_&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">i_run</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">dataset</span>
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">runs saved in : &quot;</span><span class="p">,</span> <span class="n">save_dir_runs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">generate_plots</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="o">=</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">ticks</span><span class="o">=</span><span class="n">x_axis</span><span class="p">,</span> <span class="n">subplot</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir_runs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">generate_plots</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="o">=</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">ticks</span><span class="o">=</span><span class="n">x_axis</span><span class="p">,</span> <span class="n">subplot</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir_runs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">generate_reports_txt</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir_runs</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">i_run</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">generate_reports_excel</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir_runs</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">i_run</span><span class="p">)</span>
+                <span class="n">run_storage</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">)</span>
+
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;============================================================================</span><span class="se">\n\n\n\n\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+        <span class="n">scores_list</span><span class="p">,</span> <span class="n">algos</span><span class="p">,</span> <span class="n">sets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">avg_results</span><span class="p">(</span><span class="o">*</span><span class="n">run_storage</span><span class="p">)</span>
+        <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">generate_heatmap</span><span class="p">(</span><span class="n">scores_list</span><span class="p">,</span> <span class="n">algos</span><span class="p">,</span> <span class="n">sets</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+
+        <span class="n">run_averaged</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">average_runs_by_names</span><span class="p">(</span><span class="n">run_storage</span><span class="p">)</span>
+
+        <span class="n">save_dir_agg</span> <span class="o">=</span> <span class="n">save_dir</span> <span class="o">+</span> <span class="s2">&quot;/aggregation&quot;</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">aggragation of results saved in : &quot;</span><span class="p">,</span> <span class="n">save_dir_agg</span><span class="p">)</span>
+
+        <span class="k">for</span> <span class="n">scores</span> <span class="ow">in</span> <span class="n">run_averaged</span><span class="p">:</span>
+            <span class="n">all_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">scores</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
+            <span class="n">dataset_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">all_keys</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+
+            <span class="n">save_dir_agg_set</span> <span class="o">=</span> <span class="n">save_dir_agg</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">dataset_name</span>
+
+            <span class="bp">self</span><span class="o">.</span><span class="n">generate_plots</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">ticks</span><span class="o">=</span><span class="n">x_axis</span><span class="p">,</span> <span class="n">subplot</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir_agg_set</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">generate_plots</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="o">=</span><span class="n">scores</span><span class="p">,</span> <span class="n">ticks</span><span class="o">=</span><span class="n">x_axis</span><span class="p">,</span> <span class="n">subplot</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir_agg_set</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">generate_reports_txt</span><span class="p">(</span><span class="n">scores</span><span class="p">,</span> <span class="n">save_dir_agg_set</span><span class="p">,</span> <span class="n">dataset_name</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">generate_reports_excel</span><span class="p">(</span><span class="n">scores</span><span class="p">,</span> <span class="n">save_dir_agg_set</span><span class="p">,</span> <span class="n">dataset_name</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+
+
+        <span class="k">return</span> <span class="n">run_averaged</span><span class="p">,</span> <span class="n">scores_list</span></div>
+</div>
+
+
+</pre></div>
+
+           </div>
+          </div>
+          <footer>
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
+  </div>
+
+  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
+    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
+    provided by <a href="https://readthedocs.org">Read the Docs</a>.
+   
+
+</footer>
+        </div>
+      </div>
+    </section>
+  </div>
+  <script>
+      jQuery(function () {
+          SphinxRtdTheme.Navigation.enable(true);
+      });
+  </script> 
+
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/generation/build/html/modules/imputegap/recovery/benchmarking.html b/docs/generation/build/html/modules/imputegap/recovery/benchmarking.html
deleted file mode 100644
index 986e33c3..00000000
--- a/docs/generation/build/html/modules/imputegap/recovery/benchmarking.html
+++ /dev/null
@@ -1,679 +0,0 @@
-
-
-<!DOCTYPE html>
-<html class="writer-html5" lang="en" data-content_root="../../../">
-<head>
-  <meta charset="utf-8" />
-  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.benchmarking &mdash; imputegap 1.0.2 documentation</title>
-      <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
-      <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
-      <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
-
-  
-    <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
-      <script src="../../../static/jquery.js?v=5d32c60e"></script>
-      <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
-      <script src="../../../static/doctools.js?v=9bcbadda"></script>
-      <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
-    <script src="../../../static/js/theme.js"></script>
-    <link rel="index" title="Index" href="../../../genindex.html" />
-    <link rel="search" title="Search" href="../../../search.html" /> 
-</head>
-
-<body class="wy-body-for-nav"> 
-  <div class="wy-grid-for-nav">
-    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
-      <div class="wy-side-scroll">
-        <div class="wy-side-nav-search" >
-
-          
-          
-          <a href="../../../index.html" class="icon icon-home">
-            imputegap
-              <img src="https://www.naterscreations.com/imputegap/logo_imputegab.png" class="logo" alt="Logo"/>
-          </a>
-<div role="search">
-  <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
-    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
-    <input type="hidden" name="check_keywords" value="yes" />
-    <input type="hidden" name="area" value="default" />
-  </form>
-</div>
-        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
-              <ul>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.manager.html">imputegap.recovery.manager</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.imputation.html">imputegap.recovery.imputation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.mrnn.html">imputegap.algorithms.mrnn</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.mean_impute.html">imputegap.algorithms.mean_impute</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.min_impute.html">imputegap.algorithms.min_impute</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.zero_impute.html">imputegap.algorithms.zero_impute</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.tools.utils.html">imputegap.tools.utils</a></li>
-</ul>
-<ul>
-<li class="toctree-l1"><a class="reference internal" href="../../../imputegap.html">imputegap package</a></li>
-</ul>
-
-        </div>
-      </div>
-    </nav>
-
-    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
-          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
-          <a href="../../../index.html">imputegap</a>
-      </nav>
-
-      <div class="wy-nav-content">
-        <div class="rst-content">
-          <div role="navigation" aria-label="Page navigation">
-  <ul class="wy-breadcrumbs">
-      <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
-          <li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
-      <li class="breadcrumb-item active">imputegap.recovery.benchmarking</li>
-      <li class="wy-breadcrumbs-aside">
-      </li>
-  </ul>
-  <hr/>
-</div>
-          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
-           <div itemprop="articleBody">
-             
-  <h1>Source code for imputegap.recovery.benchmarking</h1><div class="highlight"><pre>
-<span></span><span class="kn">import</span> <span class="nn">os</span>
-<span class="kn">import</span> <span class="nn">time</span>
-<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
-<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
-
-<span class="kn">from</span> <span class="nn">imputegap.tools</span> <span class="kn">import</span> <span class="n">utils</span>
-<span class="kn">from</span> <span class="nn">imputegap.recovery.imputation</span> <span class="kn">import</span> <span class="n">Imputation</span>
-<span class="kn">from</span> <span class="nn">imputegap.recovery.manager</span> <span class="kn">import</span> <span class="n">TimeSeries</span>
-
-
-<div class="viewcode-block" id="Benchmarking">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking">[docs]</a>
-<span class="k">class</span> <span class="nc">Benchmarking</span><span class="p">:</span>
-<span class="w">    </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">    A class to evaluate the performance of imputation algorithms through benchmarking across datasets and scenarios.</span>
-
-<span class="sd">    Methods</span>
-<span class="sd">    -------</span>
-<span class="sd">    _config_optimization():</span>
-<span class="sd">        Configure and execute optimization for a selected imputation algorithm and contamination scenario.</span>
-<span class="sd">    avg_results():</span>
-<span class="sd">        Calculate average metrics (e.g., RMSE) across multiple datasets and algorithm runs.</span>
-<span class="sd">    generate_matrix():</span>
-<span class="sd">        Generate and save a heatmap visualization of RMSE scores for datasets and algorithms.</span>
-<span class="sd">    generate_reports():</span>
-<span class="sd">        Create detailed text-based reports summarizing metrics and timing results for all evaluations.</span>
-<span class="sd">    generate_plots():</span>
-<span class="sd">        Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across scenarios and datasets.</span>
-<span class="sd">    comprehensive_evaluation():</span>
-<span class="sd">        Perform a complete benchmarking pipeline, including contamination, imputation, evaluation, and reporting.</span>
-
-<span class="sd">    Example</span>
-<span class="sd">    -------</span>
-<span class="sd">    output : {&#39;drift&#39;: {&#39;mcar&#39;: {&#39;mean&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9234927128429051, &#39;MAE&#39;: 0.7219362152785619, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.0010309219360351562, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005755424499511719}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9699990038879407, &#39;MAE&#39;: 0.7774057495176013, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.0020699501037597656, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.00048422813415527344}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9914069853975623, &#39;MAE&#39;: 0.8134840739732964, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.007096290588378906, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.000461578369140625}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0552448338389784, &#39;MAE&#39;: 0.7426695186604741, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.043192148208618164, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005095005035400391}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0143105930114702, &#39;MAE&#39;: 0.7610548321723654, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.17184901237487793, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005536079406738281}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.010712060535523, &#39;MAE&#39;: 0.7641520748788702, &#39;MI&#39;: 0.0, &#39;CORRELATION&#39;: 0}, &#39;times&#39;: {&#39;contamination&#39;: 0.6064670085906982, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.0005743503570556641}}}}, &#39;cdrec&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.23303624184873978, &#39;MAE&#39;: 0.13619797235197734, &#39;MI&#39;: 1.2739817718416822, &#39;CORRELATION&#39;: 0.968435455112644}, &#39;times&#39;: {&#39;contamination&#39;: 0.0009615421295166016, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.09218788146972656}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.18152059329152104, &#39;MAE&#39;: 0.09925566629402761, &#39;MI&#39;: 1.1516089897042538, &#39;CORRELATION&#39;: 0.9829398352220718}, &#39;times&#39;: {&#39;contamination&#39;: 0.00482487678527832, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.09549617767333984}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.13894771223733138, &#39;MAE&#39;: 0.08459032692102293, &#39;MI&#39;: 1.186191167936035, &#39;CORRELATION&#39;: 0.9901338133811375}, &#39;times&#39;: {&#39;contamination&#39;: 0.01713728904724121, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.1129295825958252}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.7544523683503829, &#39;MAE&#39;: 0.11218049973594252, &#39;MI&#39;: 0.021165172206064526, &#39;CORRELATION&#39;: 0.814120507570725}, &#39;times&#39;: {&#39;contamination&#39;: 0.10881781578063965, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.9378046989440918}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4355197572001326, &#39;MAE&#39;: 0.1380846624733049, &#39;MI&#39;: 0.10781252370591506, &#39;CORRELATION&#39;: 0.9166777087122915}, &#39;times&#39;: {&#39;contamination&#39;: 0.2380077838897705, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.8785057067871094}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.7672558930795506, &#39;MAE&#39;: 0.32988968428439397, &#39;MI&#39;: 0.013509125598802707, &#39;CORRELATION&#39;: 0.7312998041323675}, &#39;times&#39;: {&#39;contamination&#39;: 0.6805167198181152, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1.9562773704528809}}}}, &#39;stmvl&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.5434405584289141, &#39;MAE&#39;: 0.346560495723809, &#39;MI&#39;: 0.7328867182584357, &#39;CORRELATION&#39;: 0.8519431955571422}, &#39;times&#39;: {&#39;contamination&#39;: 0.0022056102752685547, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.07010293006897}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.39007056542870916, &#39;MAE&#39;: 0.2753022759369617, &#39;MI&#39;: 0.8280959876205578, &#39;CORRELATION&#39;: 0.9180937736429735}, &#39;times&#39;: {&#39;contamination&#39;: 0.002231597900390625, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.543020248413086}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.37254427425455994, &#39;MAE&#39;: 0.2730547993858495, &#39;MI&#39;: 0.7425412593844177, &#39;CORRELATION&#39;: 0.9293322959355041}, &#39;times&#39;: {&#39;contamination&#39;: 0.0072672367095947266, &#39;optimization&#39;: 0, &#39;imputation&#39;: 52.88247036933899}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.6027573766269363, &#39;MAE&#39;: 0.34494332493982044, &#39;MI&#39;: 0.11876685901414151, &#39;CORRELATION&#39;: 0.8390532279447225}, &#39;times&#39;: {&#39;contamination&#39;: 0.04321551322937012, &#39;optimization&#39;: 0, &#39;imputation&#39;: 54.10793352127075}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9004526656857551, &#39;MAE&#39;: 0.4924048353228427, &#39;MI&#39;: 0.011590260996247858, &#39;CORRELATION&#39;: 0.5650541301828254}, &#39;times&#39;: {&#39;contamination&#39;: 0.1728806495666504, &#39;optimization&#39;: 0, &#39;imputation&#39;: 40.53373336791992}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0112488396023014, &#39;MAE&#39;: 0.7646823531588104, &#39;MI&#39;: 0.00040669209664367576, &#39;CORRELATION&#39;: 0.0183962968474991}, &#39;times&#39;: {&#39;contamination&#39;: 0.6077785491943359, &#39;optimization&#39;: 0, &#39;imputation&#39;: 35.151907444000244}}}}, &#39;iim&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4445625930776235, &#39;MAE&#39;: 0.2696133927362288, &#39;MI&#39;: 1.1167751522591498, &#39;CORRELATION&#39;: 0.8944975075266335}, &#39;times&#39;: {&#39;contamination&#39;: 0.0010058879852294922, &#39;optimization&#39;: 0, &#39;imputation&#39;: 0.7380530834197998}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.2939506418814281, &#39;MAE&#39;: 0.16953644212278182, &#39;MI&#39;: 1.0160968166750064, &#39;CORRELATION&#39;: 0.9531900627237018}, &#39;times&#39;: {&#39;contamination&#39;: 0.0019745826721191406, &#39;optimization&#39;: 0, &#39;imputation&#39;: 4.7826457023620605}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.2366529609250008, &#39;MAE&#39;: 0.14709529129218185, &#39;MI&#39;: 1.064299483512458, &#39;CORRELATION&#39;: 0.9711348247027318}, &#39;times&#39;: {&#39;contamination&#39;: 0.00801849365234375, &#39;optimization&#39;: 0, &#39;imputation&#39;: 33.94813060760498}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.4155649406397416, &#39;MAE&#39;: 0.22056702659999994, &#39;MI&#39;: 0.06616526470761779, &#39;CORRELATION&#39;: 0.919934494058292}, &#39;times&#39;: {&#39;contamination&#39;: 0.04391813278198242, &#39;optimization&#39;: 0, &#39;imputation&#39;: 255.31524085998535}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.38695094864012947, &#39;MAE&#39;: 0.24340565131372927, &#39;MI&#39;: 0.06361822797740405, &#39;CORRELATION&#39;: 0.9249744935121553}, &#39;times&#39;: {&#39;contamination&#39;: 0.17044353485107422, &#39;optimization&#39;: 0, &#39;imputation&#39;: 840.7470128536224}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.5862696375344495, &#39;MAE&#39;: 0.3968159514130716, &#39;MI&#39;: 0.13422239939628303, &#39;CORRELATION&#39;: 0.8178796825899766}, &#39;times&#39;: {&#39;contamination&#39;: 0.5999574661254883, &#39;optimization&#39;: 0, &#39;imputation&#39;: 1974.6101157665253}}}}, &#39;mrnn&#39;: {&#39;bayesian&#39;: {&#39;0.05&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 0.9458508648057621, &#39;MAE&#39;: 0.7019459696903068, &#39;MI&#39;: 0.11924522547609226, &#39;CORRELATION&#39;: 0.02915935932568557}, &#39;times&#39;: {&#39;contamination&#39;: 0.001056671142578125, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.42237901687622}}, &#39;0.1&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0125309431502871, &#39;MAE&#39;: 0.761136543268339, &#39;MI&#39;: 0.12567590499764303, &#39;CORRELATION&#39;: -0.037161060882302754}, &#39;times&#39;: {&#39;contamination&#39;: 0.003415822982788086, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.04829454421997}}, &#39;0.2&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0317754516097355, &#39;MAE&#39;: 0.7952869439926, &#39;MI&#39;: 0.10908095436833125, &#39;CORRELATION&#39;: -0.04155403791391449}, &#39;times&#39;: {&#39;contamination&#39;: 0.007429599761962891, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.42568325996399}}, &#39;0.4&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0807965786089415, &#39;MAE&#39;: 0.7326965517264863, &#39;MI&#39;: 0.006171770470542263, &#39;CORRELATION&#39;: -0.020630168509677818}, &#39;times&#39;: {&#39;contamination&#39;: 0.042899370193481445, &#39;optimization&#39;: 0, &#39;imputation&#39;: 49.479795694351196}}, &#39;0.6&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0441472017887297, &#39;MAE&#39;: 0.7599852461729673, &#39;MI&#39;: 0.01121013333181846, &#39;CORRELATION&#39;: -0.007513931343350665}, &#39;times&#39;: {&#39;contamination&#39;: 0.17329692840576172, &#39;optimization&#39;: 0, &#39;imputation&#39;: 50.439927101135254}}, &#39;0.8&#39;: {&#39;scores&#39;: {&#39;RMSE&#39;: 1.0379347892718205, &#39;MAE&#39;: 0.757440007226372, &#39;MI&#39;: 0.0035880775657246428, &#39;CORRELATION&#39;: -0.0014975078469404196}, &#39;times&#39;: {&#39;contamination&#39;: 0.6166613101959229, &#39;optimization&#39;: 0, &#39;imputation&#39;: 50.66455388069153}}}}}}}</span>
-<span class="sd">    &quot;&quot;&quot;</span>
-
-    <span class="k">def</span> <span class="nf">_config_optimization</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">opti_mean</span><span class="p">,</span> <span class="n">ts_test</span><span class="p">,</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">block_size_mcar</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Configure and execute optimization for selected imputation algorithm and scenario.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        opti_mean : float</span>
-<span class="sd">            Mean parameter for contamination.</span>
-<span class="sd">        ts_test : TimeSeries</span>
-<span class="sd">            TimeSeries object containing dataset.</span>
-<span class="sd">        scenario : str</span>
-<span class="sd">            Type of contamination scenario (e.g., &quot;mcar&quot;, &quot;mp&quot;, &quot;blackout&quot;).</span>
-<span class="sd">        algorithm : str</span>
-<span class="sd">            Imputation algorithm to use.</span>
-<span class="sd">        block_size_mcar : int</span>
-<span class="sd">            Size of blocks removed in MCAR</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        BaseImputer</span>
-<span class="sd">            Configured imputer instance with optimal parameters.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-
-        <span class="k">if</span> <span class="n">scenario</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
-            <span class="n">infected_matrix_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span>
-                                                            <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size_mcar</span><span class="p">,</span>
-                                                            <span class="n">use_seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="n">scenario</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
-            <span class="n">infected_matrix_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">,</span>
-                                                                          <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">)</span>
-        <span class="k">else</span><span class="p">:</span>
-            <span class="n">infected_matrix_opti</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">blackout</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">opti_mean</span><span class="p">)</span>
-
-        <span class="n">i_opti</span> <span class="o">=</span> <span class="kc">None</span>
-        <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;cdrec&quot;</span><span class="p">:</span>
-            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">infected_matrix_opti</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;stmvl&quot;</span><span class="p">:</span>
-            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">infected_matrix_opti</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;iim&quot;</span><span class="p">:</span>
-            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">infected_matrix_opti</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mrnn&quot;</span><span class="p">:</span>
-            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">infected_matrix_opti</span><span class="p">)</span>
-        <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
-            <span class="n">i_opti</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">MeanImpute</span><span class="p">(</span><span class="n">infected_matrix_opti</span><span class="p">)</span>
-
-        <span class="k">return</span> <span class="n">i_opti</span>
-
-<div class="viewcode-block" id="Benchmarking.avg_results">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.avg_results">[docs]</a>
-    <span class="k">def</span> <span class="nf">avg_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">datasets</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Calculate the average of all metrics and times across multiple datasets.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        datasets : dict</span>
-<span class="sd">            Multiple dataset dictionaries to be averaged.</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        dict</span>
-<span class="sd">            Dictionary with averaged scores and times for all levels.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-
-        <span class="c1"># Step 1: Compute average RMSE across runs for each dataset and algorithm</span>
-        <span class="n">aggregated_data</span> <span class="o">=</span> <span class="p">{}</span>
-
-        <span class="k">for</span> <span class="n">runs</span> <span class="ow">in</span> <span class="n">datasets</span><span class="p">:</span>
-            <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">dataset_items</span> <span class="ow">in</span> <span class="n">runs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                <span class="k">if</span> <span class="n">dataset</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="p">:</span>
-                    <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
-
-                <span class="k">for</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">scenario_items</span> <span class="ow">in</span> <span class="n">dataset_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                    <span class="k">for</span> <span class="n">algo</span><span class="p">,</span> <span class="n">algo_data</span> <span class="ow">in</span> <span class="n">scenario_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                        <span class="k">if</span> <span class="n">algo</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">]:</span>
-                            <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
-
-                        <span class="k">for</span> <span class="n">missing_values</span><span class="p">,</span> <span class="n">missing_values_item</span> <span class="ow">in</span> <span class="n">algo_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                            <span class="k">for</span> <span class="n">param</span><span class="p">,</span> <span class="n">param_data</span> <span class="ow">in</span> <span class="n">missing_values_item</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                                <span class="n">rmse</span> <span class="o">=</span> <span class="n">param_data</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">][</span><span class="s2">&quot;RMSE&quot;</span><span class="p">]</span>
-                                <span class="n">aggregated_data</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rmse</span><span class="p">)</span>
-
-        <span class="c1"># Step 2: Compute averages using NumPy</span>
-        <span class="n">average_rmse_matrix</span> <span class="o">=</span> <span class="p">{}</span>
-        <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">algos</span> <span class="ow">in</span> <span class="n">aggregated_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-            <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
-            <span class="k">for</span> <span class="n">algo</span><span class="p">,</span> <span class="n">rmse_values</span> <span class="ow">in</span> <span class="n">algos</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                <span class="n">rmse_array</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">rmse_values</span><span class="p">)</span>
-                <span class="n">avg_rmse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">rmse_array</span><span class="p">)</span>
-                <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">][</span><span class="n">algo</span><span class="p">]</span> <span class="o">=</span> <span class="n">avg_rmse</span>
-
-        <span class="c1"># Step 3: Create a matrix representation of datasets and algorithms</span>
-        <span class="n">datasets_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">average_rmse_matrix</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
-        <span class="n">algorithms</span> <span class="o">=</span> <span class="p">{</span><span class="n">algo</span> <span class="k">for</span> <span class="n">algos</span> <span class="ow">in</span> <span class="n">average_rmse_matrix</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">algo</span> <span class="ow">in</span> <span class="n">algos</span><span class="p">}</span>
-        <span class="n">algorithms_list</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">algorithms</span><span class="p">)</span>
-
-        <span class="c1"># Prepare a NumPy matrix</span>
-        <span class="n">comprehensive_matrix</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">datasets_list</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">algorithms_list</span><span class="p">)))</span>
-
-        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">datasets_list</span><span class="p">):</span>
-            <span class="k">for</span> <span class="n">j</span><span class="p">,</span> <span class="n">algo</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">algorithms_list</span><span class="p">):</span>
-                <span class="n">comprehensive_matrix</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span> <span class="o">=</span> <span class="n">average_rmse_matrix</span><span class="p">[</span><span class="n">dataset</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">algo</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span><span class="p">)</span>
-
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of datasets:&quot;</span><span class="p">,</span> <span class="n">datasets_list</span><span class="p">)</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of algorithms:&quot;</span><span class="p">,</span> <span class="n">algorithms_list</span><span class="p">)</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Visualization of matrix:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">comprehensive_matrix</span><span class="p">)</span>
-
-        <span class="k">return</span> <span class="n">comprehensive_matrix</span><span class="p">,</span> <span class="n">algorithms_list</span><span class="p">,</span> <span class="n">datasets_list</span></div>
-
-
-<div class="viewcode-block" id="Benchmarking.generate_matrix">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_matrix">[docs]</a>
-    <span class="k">def</span> <span class="nf">generate_matrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scores_list</span><span class="p">,</span> <span class="n">algos</span><span class="p">,</span> <span class="n">sets</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Generate and save RMSE matrix in HD quality.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        scores_list : np.ndarray</span>
-<span class="sd">            2D numpy array containing RMSE values.</span>
-<span class="sd">        algos : list of str</span>
-<span class="sd">            List of algorithm names (columns of the heatmap).</span>
-<span class="sd">        sets : list of str</span>
-<span class="sd">            List of dataset names (rows of the heatmap).</span>
-<span class="sd">        save_dir : str, optional</span>
-<span class="sd">            Directory to save the generated plot (default is &quot;./reports&quot;).</span>
-<span class="sd">        display : bool, optional</span>
-<span class="sd">            Display or not the plot</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        Bool</span>
-<span class="sd">            True if the matrix has been generated</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-        <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">save_dir</span><span class="p">):</span>
-            <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">)</span>
-
-        <span class="n">fig</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
-        <span class="n">cmap</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">Greys</span>
-        <span class="n">norm</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">Normalize</span><span class="p">(</span><span class="n">vmin</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">vmax</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>  <span class="c1"># Normalizing values between 0 and 2 (RMSE)</span>
-
-        <span class="c1"># Create the heatmap</span>
-        <span class="n">heatmap</span> <span class="o">=</span> <span class="n">ax</span><span class="o">.</span><span class="n">imshow</span><span class="p">(</span><span class="n">scores_list</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">cmap</span><span class="p">,</span> <span class="n">norm</span><span class="o">=</span><span class="n">norm</span><span class="p">,</span> <span class="n">aspect</span><span class="o">=</span><span class="s1">&#39;auto&#39;</span><span class="p">)</span>
-
-        <span class="c1"># Add color bar for reference</span>
-        <span class="n">cbar</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">colorbar</span><span class="p">(</span><span class="n">heatmap</span><span class="p">,</span> <span class="n">ax</span><span class="o">=</span><span class="n">ax</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s1">&#39;vertical&#39;</span><span class="p">)</span>
-        <span class="n">cbar</span><span class="o">.</span><span class="n">set_label</span><span class="p">(</span><span class="s1">&#39;RMSE&#39;</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">270</span><span class="p">,</span> <span class="n">labelpad</span><span class="o">=</span><span class="mi">15</span><span class="p">)</span>
-
-        <span class="c1"># Set the tick labels</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">algos</span><span class="p">)))</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_xticklabels</span><span class="p">(</span><span class="n">algos</span><span class="p">)</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_yticks</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">sets</span><span class="p">)))</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_yticklabels</span><span class="p">(</span><span class="n">sets</span><span class="p">)</span>
-
-        <span class="c1"># Add titles and labels</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="s1">&#39;ImputeGAP Algorithms Comparison&#39;</span><span class="p">)</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;Algorithms&#39;</span><span class="p">)</span>
-        <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;Datasets&#39;</span><span class="p">)</span>
-
-        <span class="c1"># Show values on the heatmap</span>
-        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">sets</span><span class="p">)):</span>
-            <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">algos</span><span class="p">)):</span>
-                <span class="n">ax</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">j</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">scores_list</span><span class="p">[</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="p">]</span><span class="si">:</span><span class="s2">.2f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
-                        <span class="n">ha</span><span class="o">=</span><span class="s1">&#39;center&#39;</span><span class="p">,</span> <span class="n">va</span><span class="o">=</span><span class="s1">&#39;center&#39;</span><span class="p">,</span>
-                        <span class="n">color</span><span class="o">=</span><span class="s2">&quot;black&quot;</span> <span class="k">if</span> <span class="n">scores_list</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">]</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">&quot;white&quot;</span><span class="p">)</span>  <span class="c1"># for visibility</span>
-
-        <span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;benchmarking_rmse.jpg&quot;</span>
-        <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s1">&#39;tight&#39;</span><span class="p">)</span>  <span class="c1"># Save in HD with tight layout</span>
-
-        <span class="c1"># Show the plot</span>
-        <span class="k">if</span> <span class="n">display</span> <span class="p">:</span>
-            <span class="n">plt</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
-            <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
-            <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-
-        <span class="k">return</span> <span class="kc">True</span></div>
-
-
-<div class="viewcode-block" id="Benchmarking.generate_reports">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_reports">[docs]</a>
-    <span class="k">def</span> <span class="nf">generate_reports</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Generate and save a text reports of metrics and timing for each dataset, algorithm, and scenario.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        runs_plots_scores : dict</span>
-<span class="sd">            Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</span>
-<span class="sd">        save_dir : str, optional</span>
-<span class="sd">            Directory to save the reports file (default is &quot;./reports&quot;).</span>
-<span class="sd">        dataset : str, optional</span>
-<span class="sd">            Name of the data for the reports name.</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        None</span>
-
-<span class="sd">        Notes</span>
-<span class="sd">        -----</span>
-<span class="sd">        The reports is saved in a &quot;reports.txt&quot; file in `save_dir`, organized in tabular format.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-
-        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-        <span class="n">save_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="s2">&quot;report_&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">dataset</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;.txt&quot;</span><span class="p">)</span>
-        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">save_path</span><span class="p">,</span> <span class="s2">&quot;w&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">file</span><span class="p">:</span>
-            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;dictionary of results : &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-            <span class="c1"># Define header with time columns included</span>
-            <span class="n">header</span> <span class="o">=</span> <span class="s2">&quot;| dataset_value | algorithm_value | optimizer_value | scenario_value | x_value | RMSE | MAE | MI | CORRELATION | time_contamination | time_optimization | time_imputation |</span><span class="se">\n</span><span class="s2">&quot;</span>
-            <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">header</span><span class="p">)</span>
-
-            <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">algo_items</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                <span class="k">for</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer_items</span> <span class="ow">in</span> <span class="n">algo_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                    <span class="k">for</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">scenario_data</span> <span class="ow">in</span> <span class="n">optimizer_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                        <span class="k">for</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">x_data_items</span> <span class="ow">in</span> <span class="n">scenario_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                            <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">x_data_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                                <span class="n">metrics</span> <span class="o">=</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">]</span>
-                                <span class="n">times</span> <span class="o">=</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]</span>
-
-                                <span class="c1"># Retrieve each timing value, defaulting to None if absent</span>
-                                <span class="n">contamination_time</span> <span class="o">=</span> <span class="n">times</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;contamination&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-                                <span class="n">optimization_time</span> <span class="o">=</span> <span class="n">times</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;optimization&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-                                <span class="n">imputation_time</span> <span class="o">=</span> <span class="n">times</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;imputation&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
-
-                                <span class="c1"># Create a reports line with timing details</span>
-                                <span class="n">line</span> <span class="o">=</span> <span class="p">(</span>
-                                    <span class="sa">f</span><span class="s2">&quot;| </span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">algorithm</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">optimizer</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">scenario</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">x</span><span class="si">}</span><span class="s2"> &quot;</span>
-                                    <span class="sa">f</span><span class="s2">&quot;| </span><span class="si">{</span><span class="n">metrics</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;RMSE&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">metrics</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;MAE&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">metrics</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;MI&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> &quot;</span>
-                                    <span class="sa">f</span><span class="s2">&quot;| </span><span class="si">{</span><span class="n">metrics</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;CORRELATION&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">contamination_time</span><span class="si">}</span><span class="s2"> sec | </span><span class="si">{</span><span class="n">optimization_time</span><span class="si">}</span><span class="s2"> sec&quot;</span>
-                                    <span class="sa">f</span><span class="s2">&quot;| </span><span class="si">{</span><span class="n">imputation_time</span><span class="si">}</span><span class="s2"> sec |</span><span class="se">\n</span><span class="s2">&quot;</span>
-                                <span class="p">)</span>
-                                <span class="n">file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
-
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Report recorded in&quot;</span><span class="p">,</span> <span class="n">save_path</span><span class="p">)</span></div>
-
-
-<div class="viewcode-block" id="Benchmarking.generate_plots">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.generate_plots">[docs]</a>
-    <span class="k">def</span> <span class="nf">generate_plots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="s2">&quot;M&quot;</span><span class="p">,</span> <span class="n">v</span><span class="o">=</span><span class="s2">&quot;N&quot;</span><span class="p">,</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Generate and save plots for each metric and scenario based on provided scores.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        runs_plots_scores : dict</span>
-<span class="sd">            Dictionary containing scores and timing information for each dataset, scenario, and algorithm.</span>
-<span class="sd">        s : str</span>
-<span class="sd">            display the number of series in graphs</span>
-<span class="sd">        v : sts</span>
-<span class="sd">            display the number of values in graphs</span>
-<span class="sd">        save_dir : str, optional</span>
-<span class="sd">            Directory to save generated plots (default is &quot;./reports&quot;).</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        None</span>
-
-<span class="sd">        Notes</span>
-<span class="sd">        -----</span>
-<span class="sd">        Saves generated plots in `save_dir`, categorized by dataset, scenario, and metric.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-        <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-
-        <span class="k">for</span> <span class="n">dataset</span><span class="p">,</span> <span class="n">scenario_items</span> <span class="ow">in</span> <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-            <span class="k">for</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">algo_items</span> <span class="ow">in</span> <span class="n">scenario_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                <span class="c1"># Iterate over each metric, generating separate plots, including new timing metrics</span>
-                <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">,</span> <span class="s2">&quot;MAE&quot;</span><span class="p">,</span> <span class="s2">&quot;MI&quot;</span><span class="p">,</span> <span class="s2">&quot;CORRELATION&quot;</span><span class="p">,</span> <span class="s2">&quot;imputation_time&quot;</span><span class="p">,</span> <span class="s2">&quot;optimization_time&quot;</span><span class="p">,</span>
-                               <span class="s2">&quot;contamination_time&quot;</span><span class="p">]:</span>
-                    <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>  <span class="c1"># Fixed height set by second parameter</span>
-                    <span class="n">has_data</span> <span class="o">=</span> <span class="kc">False</span>  <span class="c1"># Flag to check if any data is added to the plot</span>
-
-                    <span class="c1"># Iterate over each algorithm and plot them in the same figure</span>
-                    <span class="k">for</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">optimizer_items</span> <span class="ow">in</span> <span class="n">algo_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                        <span class="n">x_vals</span> <span class="o">=</span> <span class="p">[]</span>
-                        <span class="n">y_vals</span> <span class="o">=</span> <span class="p">[]</span>
-                        <span class="k">for</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">x_data</span> <span class="ow">in</span> <span class="n">optimizer_items</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                            <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">values</span> <span class="ow">in</span> <span class="n">x_data</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
-                                <span class="c1"># Differentiate between score metrics and timing metrics</span>
-                                <span class="k">if</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;imputation_time&quot;</span> <span class="ow">and</span> <span class="s2">&quot;imputation&quot;</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]:</span>
-                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="s2">&quot;imputation&quot;</span><span class="p">])</span>
-                                <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;optimization_time&quot;</span> <span class="ow">and</span> <span class="s2">&quot;optimization&quot;</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]:</span>
-                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="s2">&quot;optimization&quot;</span><span class="p">])</span>
-                                <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;contamination_time&quot;</span> <span class="ow">and</span> <span class="s2">&quot;contamination&quot;</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">]:</span>
-                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;times&quot;</span><span class="p">][</span><span class="s2">&quot;contamination&quot;</span><span class="p">])</span>
-                                <span class="k">elif</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">values</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">]:</span>
-                                    <span class="n">x_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-                                    <span class="n">y_vals</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="s2">&quot;scores&quot;</span><span class="p">][</span><span class="n">metric</span><span class="p">])</span>
-
-                        <span class="c1"># Only plot if there are values to plot</span>
-                        <span class="k">if</span> <span class="n">x_vals</span> <span class="ow">and</span> <span class="n">y_vals</span><span class="p">:</span>
-                            <span class="c1"># Sort x and y values by x for correct spacing</span>
-                            <span class="n">sorted_pairs</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">))</span>
-                            <span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">sorted_pairs</span><span class="p">)</span>
-
-                            <span class="c1"># Plot each algorithm as a line with scattered points</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">algorithm</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x_vals</span><span class="p">,</span> <span class="n">y_vals</span><span class="p">)</span>
-                            <span class="n">has_data</span> <span class="o">=</span> <span class="kc">True</span>
-
-                    <span class="c1"># Save plot only if there is data to display</span>
-                    <span class="k">if</span> <span class="n">has_data</span><span class="p">:</span>
-                        <span class="c1"># Set plot titles and labels based on metric</span>
-                        <span class="n">title_metric</span> <span class="o">=</span> <span class="p">{</span>
-                            <span class="s2">&quot;imputation_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Imputation Time&quot;</span><span class="p">,</span>
-                            <span class="s2">&quot;optimization_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Optimization Time&quot;</span><span class="p">,</span>
-                            <span class="s2">&quot;contamination_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Contamination Time&quot;</span>
-                        <span class="p">}</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">metric</span><span class="p">,</span> <span class="n">metric</span><span class="p">)</span>
-                        <span class="n">ylabel_metric</span> <span class="o">=</span> <span class="p">{</span>
-                            <span class="s2">&quot;imputation_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Imputation Time (seconds)&quot;</span><span class="p">,</span>
-                            <span class="s2">&quot;optimization_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Optimization Time (seconds)&quot;</span><span class="p">,</span>
-                            <span class="s2">&quot;contamination_time&quot;</span><span class="p">:</span> <span class="s2">&quot;Contamination Time (seconds)&quot;</span>
-                        <span class="p">}</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">metric</span><span class="p">,</span> <span class="n">metric</span><span class="p">)</span>
-
-                        <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">scenario</span><span class="si">}</span><span class="s2"> | </span><span class="si">{</span><span class="n">title_metric</span><span class="si">}</span><span class="s2"> | (</span><span class="si">{</span><span class="n">s</span><span class="si">}</span><span class="s2">x</span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">)&quot;</span><span class="p">)</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">scenario</span><span class="si">}</span><span class="s2"> rate of missing values and missing series&quot;</span><span class="p">)</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="n">ylabel_metric</span><span class="p">)</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.85</span><span class="p">)</span>
-
-                        <span class="c1"># Set y-axis limits with padding below 0 for visibility</span>
-                        <span class="k">if</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;imputation_time&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mi">10</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
-                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;contamination_time&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.01</span><span class="p">,</span> <span class="mf">0.59</span><span class="p">)</span>
-                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;MAE&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">2.4</span><span class="p">)</span>
-                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;MI&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">1.85</span><span class="p">)</span>
-                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;RMSE&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.1</span><span class="p">,</span> <span class="mf">2.6</span><span class="p">)</span>
-                        <span class="k">elif</span> <span class="n">metric</span> <span class="o">==</span> <span class="s2">&quot;CORRELATION&quot;</span><span class="p">:</span>
-                            <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">(</span><span class="o">-</span><span class="mf">0.75</span><span class="p">,</span> <span class="mf">1.1</span><span class="p">)</span>
-
-                        <span class="c1"># Customize x-axis ticks</span>
-                        <span class="n">x_points</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.05</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">]</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">(</span><span class="n">x_points</span><span class="p">,</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">tick</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">100</span><span class="p">)</span><span class="si">}</span><span class="s2">%&quot;</span> <span class="k">for</span> <span class="n">tick</span> <span class="ow">in</span> <span class="n">x_points</span><span class="p">])</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">zorder</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span> <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
-
-                        <span class="c1"># Define a unique filename</span>
-                        <span class="n">filename</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">dataset</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">scenario</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">metric</span><span class="si">}</span><span class="s2">.jpg&quot;</span>
-                        <span class="n">filepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_dir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span>
-
-                        <span class="c1"># Save the figure</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span>
-                    <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>  <span class="c1"># Close to avoid memory issues</span>
-
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">All plots recorded in&quot;</span><span class="p">,</span> <span class="n">save_dir</span><span class="p">)</span></div>
-
-
-<div class="viewcode-block" id="Benchmarking.comprehensive_evaluation">
-<a class="viewcode-back" href="../../../imputegap.benchmarking.html#imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation">[docs]</a>
-    <span class="k">def</span> <span class="nf">comprehensive_evaluation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">datasets</span><span class="o">=</span><span class="p">[],</span> <span class="n">optimizers</span><span class="o">=</span><span class="p">[],</span> <span class="n">algorithms</span><span class="o">=</span><span class="p">[],</span> <span class="n">scenarios</span><span class="o">=</span><span class="p">[],</span>
-                                 <span class="n">x_axis</span><span class="o">=</span><span class="p">[</span><span class="mf">0.05</span><span class="p">,</span> <span class="mf">0.1</span><span class="p">,</span> <span class="mf">0.2</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">,</span> <span class="mf">0.6</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">],</span> <span class="n">save_dir</span><span class="o">=</span><span class="s2">&quot;./reports&quot;</span><span class="p">,</span> <span class="n">already_optimized</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-                                 <span class="n">reports</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
-<span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Execute a comprehensive evaluation of imputation algorithms over multiple datasets and scenarios.</span>
-
-<span class="sd">        Parameters</span>
-<span class="sd">        ----------</span>
-<span class="sd">        datasets : list of str</span>
-<span class="sd">            List of dataset names to evaluate.</span>
-<span class="sd">        optimizers : list of dict</span>
-<span class="sd">            List of optimizers with their configurations.</span>
-<span class="sd">        algorithms : list of str</span>
-<span class="sd">            List of imputation algorithms to test.</span>
-<span class="sd">        scenarios : list of str</span>
-<span class="sd">            List of contamination scenarios to apply.</span>
-<span class="sd">        x_axis : list of float</span>
-<span class="sd">            List of missing rates for contamination.</span>
-<span class="sd">        save_dir : str, optional</span>
-<span class="sd">            Directory to save reports and plots (default is &quot;./reports&quot;).</span>
-<span class="sd">        already_optimized : bool, optional</span>
-<span class="sd">            If True, skip parameter optimization (default is False).</span>
-<span class="sd">        reports : int, optional</span>
-<span class="sd">            Number of executions with a view to averaging them</span>
-
-<span class="sd">        Returns</span>
-<span class="sd">        -------</span>
-<span class="sd">        None</span>
-
-<span class="sd">        Notes</span>
-<span class="sd">        -----</span>
-<span class="sd">        Runs contamination, imputation, and evaluation, then generates plots and a summary reports.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;initialization of the comprehensive evaluation. It can take time...</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-        <span class="k">for</span> <span class="n">runs</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">abs</span><span class="p">(</span><span class="n">reports</span><span class="p">)):</span>
-            <span class="k">for</span> <span class="n">dataset</span> <span class="ow">in</span> <span class="n">datasets</span><span class="p">:</span>
-                <span class="n">runs_plots_scores</span> <span class="o">=</span> <span class="p">{}</span>
-                <span class="n">limitation_series</span><span class="p">,</span> <span class="n">limitation_values</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">1000</span>
-                <span class="n">block_size_mcar</span> <span class="o">=</span> <span class="mi">10</span>
-
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;1. evaluation launch for&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span>
-                      <span class="s2">&quot;========================================================</span><span class="se">\n\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
-                <span class="n">ts_test</span> <span class="o">=</span> <span class="n">TimeSeries</span><span class="p">()</span>
-
-                <span class="n">header</span> <span class="o">=</span> <span class="kc">False</span>
-                <span class="k">if</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;eeg-reading&quot;</span><span class="p">:</span>
-                    <span class="n">header</span> <span class="o">=</span> <span class="kc">True</span>
-                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;drift&quot;</span><span class="p">:</span>
-                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">50</span>
-                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;fmri-objectviewing&quot;</span><span class="p">:</span>
-                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">360</span>
-                <span class="k">elif</span> <span class="n">dataset</span> <span class="o">==</span> <span class="s2">&quot;fmri-stoptask&quot;</span><span class="p">:</span>
-                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">360</span>
-
-                <span class="k">if</span> <span class="n">reports</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
-                    <span class="n">limitation_series</span> <span class="o">=</span> <span class="mi">10</span>
-                    <span class="n">limitation_values</span> <span class="o">=</span> <span class="mi">110</span>
-                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;TEST LOADED...&quot;</span><span class="p">)</span>
-
-                <span class="n">ts_test</span><span class="o">.</span><span class="n">load_timeseries</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">utils</span><span class="o">.</span><span class="n">search_path</span><span class="p">(</span><span class="n">dataset</span><span class="p">),</span> <span class="n">max_series</span><span class="o">=</span><span class="n">limitation_series</span><span class="p">,</span>
-                                        <span class="n">max_values</span><span class="o">=</span><span class="n">limitation_values</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="n">header</span><span class="p">)</span>
-
-                <span class="n">start_time_opti</span><span class="p">,</span> <span class="n">end_time_opti</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span>
-                <span class="n">M</span><span class="p">,</span> <span class="n">N</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="o">.</span><span class="n">shape</span>
-
-                <span class="k">if</span> <span class="n">N</span> <span class="o">&lt;</span> <span class="mi">250</span><span class="p">:</span>
-                    <span class="n">block_size_mcar</span> <span class="o">=</span> <span class="mi">2</span>
-
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;1. normalization of &quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-                <span class="n">ts_test</span><span class="o">.</span><span class="n">normalize</span><span class="p">()</span>
-
-                <span class="k">for</span> <span class="n">scenario</span> <span class="ow">in</span> <span class="n">scenarios</span><span class="p">:</span>
-                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">2. contamination of&quot;</span><span class="p">,</span> <span class="n">dataset</span><span class="p">,</span> <span class="s2">&quot;with scenario&quot;</span><span class="p">,</span> <span class="n">scenario</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-                    <span class="k">for</span> <span class="n">algorithm</span> <span class="ow">in</span> <span class="n">algorithms</span><span class="p">:</span>
-                        <span class="n">has_been_optimized</span> <span class="o">=</span> <span class="kc">False</span>
-                        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">3. algorithm selected&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-                        <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">x_axis</span><span class="p">:</span>
-                            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">4. missing values (series&amp;values) set to&quot;</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="s2">&quot;for x_axis</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-                            <span class="n">start_time_contamination</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
-                            <span class="k">if</span> <span class="n">scenario</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
-                                <span class="n">infected_matrix</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
-                                                                           <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size_mcar</span><span class="p">,</span>
-                                                                           <span class="n">use_seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
-                            <span class="k">elif</span> <span class="n">scenario</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
-                                <span class="n">infected_matrix</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span>
-                                                                                         <span class="n">series_impacted</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
-                                                                                         <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">)</span>
-                            <span class="k">else</span><span class="p">:</span>
-                                <span class="n">infected_matrix</span> <span class="o">=</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">blackout</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">x</span><span class="p">)</span>
-                            <span class="n">end_time_contamination</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
-
-                            <span class="k">for</span> <span class="n">optimizer</span> <span class="ow">in</span> <span class="n">optimizers</span><span class="p">:</span>
-                                <span class="n">algo</span> <span class="o">=</span> <span class="kc">None</span>
-                                <span class="n">optimizer_gt</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;ground_truth&quot;</span><span class="p">:</span> <span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="o">**</span><span class="n">optimizer</span><span class="p">}</span>
-                                <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;cdrec&quot;</span><span class="p">:</span>
-                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
-                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;stmvl&quot;</span><span class="p">:</span>
-                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
-                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;iim&quot;</span><span class="p">:</span>
-                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
-                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mrnn&quot;</span><span class="p">:</span>
-                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
-                                <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
-                                    <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">MeanImpute</span><span class="p">(</span><span class="n">infected_matrix</span><span class="p">)</span>
-
-                                <span class="k">if</span> <span class="ow">not</span> <span class="n">has_been_optimized</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">already_optimized</span> <span class="ow">and</span> <span class="n">algorithm</span> <span class="o">!=</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
-                                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">5. AutoML to set the parameters&quot;</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
-                                    <span class="n">start_time_opti</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
-                                    <span class="n">i_opti</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_config_optimization</span><span class="p">(</span><span class="mf">0.25</span><span class="p">,</span> <span class="n">ts_test</span><span class="p">,</span> <span class="n">scenario</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span>
-                                                                       <span class="n">block_size_mcar</span><span class="p">)</span>
-                                    <span class="n">i_opti</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">optimizer_gt</span><span class="p">)</span>
-                                    <span class="n">utils</span><span class="o">.</span><span class="n">save_optimization</span><span class="p">(</span><span class="n">optimal_params</span><span class="o">=</span><span class="n">i_opti</span><span class="o">.</span><span class="n">parameters</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="n">algorithm</span><span class="p">,</span>
-                                                            <span class="n">dataset</span><span class="o">=</span><span class="n">dataset</span><span class="p">,</span> <span class="n">optimizer</span><span class="o">=</span><span class="s2">&quot;e&quot;</span><span class="p">)</span>
-                                    <span class="n">has_been_optimized</span> <span class="o">=</span> <span class="kc">True</span>
-                                    <span class="n">end_time_opti</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
-
-                                <span class="k">if</span> <span class="n">algorithm</span> <span class="o">!=</span> <span class="s2">&quot;mean&quot;</span><span class="p">:</span>
-                                    <span class="n">opti_params</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;optimal&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="n">algorithm</span><span class="p">,</span>
-                                                                        <span class="n">dataset</span><span class="o">=</span><span class="n">dataset</span><span class="p">,</span> <span class="n">optimizer</span><span class="o">=</span><span class="s2">&quot;e&quot;</span><span class="p">)</span>
-                                    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">6. imputation&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;with optimal parameters&quot;</span><span class="p">,</span> <span class="o">*</span><span class="n">opti_params</span><span class="p">)</span>
-
-                                <span class="k">else</span><span class="p">:</span>
-                                    <span class="n">opti_params</span> <span class="o">=</span> <span class="kc">None</span>
-
-                                <span class="n">start_time_imputation</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
-                                <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">params</span><span class="o">=</span><span class="n">opti_params</span><span class="p">)</span>
-                                <span class="n">end_time_imputation</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
-
-                                <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">raw_matrix</span><span class="o">=</span><span class="n">ts_test</span><span class="o">.</span><span class="n">data</span><span class="p">,</span> <span class="n">imputed_matrix</span><span class="o">=</span><span class="n">algo</span><span class="o">.</span><span class="n">imputed_matrix</span><span class="p">)</span>
-
-                                <span class="n">time_contamination</span> <span class="o">=</span> <span class="n">end_time_contamination</span> <span class="o">-</span> <span class="n">start_time_contamination</span>
-                                <span class="n">time_opti</span> <span class="o">=</span> <span class="n">end_time_opti</span> <span class="o">-</span> <span class="n">start_time_opti</span>
-                                <span class="n">time_imputation</span> <span class="o">=</span> <span class="n">end_time_imputation</span> <span class="o">-</span> <span class="n">start_time_imputation</span>
-
-                                <span class="n">dic_timing</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;contamination&quot;</span><span class="p">:</span> <span class="n">time_contamination</span><span class="p">,</span> <span class="s2">&quot;optimization&quot;</span><span class="p">:</span> <span class="n">time_opti</span><span class="p">,</span>
-                                              <span class="s2">&quot;imputation&quot;</span><span class="p">:</span> <span class="n">time_imputation</span><span class="p">}</span>
-
-                                <span class="n">dataset_s</span> <span class="o">=</span> <span class="n">dataset</span>
-                                <span class="k">if</span> <span class="s2">&quot;-&quot;</span> <span class="ow">in</span> <span class="n">dataset</span><span class="p">:</span>
-                                    <span class="n">dataset_s</span> <span class="o">=</span> <span class="n">dataset</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span>
-
-                                <span class="n">optimizer_value</span> <span class="o">=</span> <span class="n">optimizer</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;optimizer&#39;</span><span class="p">)</span>  <span class="c1"># or optimizer[&#39;optimizer&#39;]</span>
-
-                                <span class="n">runs_plots_scores</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">dataset_s</span><span class="p">),</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">scenario</span><span class="p">),</span>
-                                                                                            <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span>
-                                    <span class="nb">str</span><span class="p">(</span><span class="n">algorithm</span><span class="p">),</span> <span class="p">{})</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">optimizer_value</span><span class="p">),</span> <span class="p">{})[</span><span class="nb">str</span><span class="p">(</span><span class="n">x</span><span class="p">)]</span> <span class="o">=</span> <span class="p">{</span>
-                                    <span class="s2">&quot;scores&quot;</span><span class="p">:</span> <span class="n">algo</span><span class="o">.</span><span class="n">metrics</span><span class="p">,</span>
-                                    <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="n">dic_timing</span>
-                                <span class="p">}</span>
-
-                                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">runs_plots_scores&quot;</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">)</span>
-
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">runs_plots_scores : &quot;</span><span class="p">,</span> <span class="n">runs_plots_scores</span><span class="p">)</span>
-                <span class="n">save_dir_runs</span> <span class="o">=</span> <span class="n">save_dir</span> <span class="o">+</span> <span class="s2">&quot;/report_&quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">runs</span><span class="p">)</span>
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">runs saved in : &quot;</span><span class="p">,</span> <span class="n">save_dir_runs</span><span class="p">)</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">generate_plots</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="o">=</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">M</span><span class="p">),</span> <span class="n">v</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">N</span><span class="p">),</span> <span class="n">save_dir</span><span class="o">=</span><span class="n">save_dir_runs</span><span class="p">)</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">generate_reports</span><span class="p">(</span><span class="n">runs_plots_scores</span><span class="p">,</span> <span class="n">save_dir_runs</span><span class="p">,</span> <span class="n">dataset</span><span class="p">)</span>
-
-                <span class="nb">print</span><span class="p">(</span>
-                    <span class="s2">&quot;======================================================================================</span><span class="se">\n\n\n\n\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
-
-        <span class="k">return</span> <span class="n">runs_plots_scores</span></div>
-</div>
-
-</pre></div>
-
-           </div>
-          </div>
-          <footer>
-
-  <hr/>
-
-  <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
-  </div>
-
-  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
-    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
-    provided by <a href="https://readthedocs.org">Read the Docs</a>.
-   
-
-</footer>
-        </div>
-      </div>
-    </section>
-  </div>
-  <script>
-      jQuery(function () {
-          SphinxRtdTheme.Navigation.enable(true);
-      });
-  </script> 
-
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/generation/build/html/modules/imputegap/recovery/evaluation.html b/docs/generation/build/html/modules/imputegap/recovery/evaluation.html
index 82a2269d..c17bdff7 100644
--- a/docs/generation/build/html/modules/imputegap/recovery/evaluation.html
+++ b/docs/generation/build/html/modules/imputegap/recovery/evaluation.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.evaluation &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.evaluation &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -100,7 +100,7 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 
 <span class="sd">    Methods</span>
 <span class="sd">    -------</span>
-<span class="sd">    metrics_computation():</span>
+<span class="sd">    compute_all_metrics():</span>
 <span class="sd">        Compute various evaluation metrics (RMSE, MAE, MI, CORRELATION) for the imputation.</span>
 <span class="sd">    compute_rmse():</span>
 <span class="sd">        Compute the Root Mean Squared Error (RMSE) between the ground truth and the imputed values.</span>
@@ -113,30 +113,30 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 
 <span class="sd">    &quot;&quot;&quot;</span>
 
-    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">imputation</span><span class="p">,</span> <span class="n">contamination</span><span class="p">):</span>
+    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">recov_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Initialize the Evaluation class with ground truth, imputation, and contamination time series.</span>
+<span class="sd">        Initialize the Evaluation class with ground truth, imputation, and incomp_data time series.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        ground_truth : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The original time series without contamination.</span>
-<span class="sd">        imputation : numpy.ndarray</span>
+<span class="sd">        recov_data : numpy.ndarray</span>
 <span class="sd">            The imputed time series.</span>
-<span class="sd">        contamination : numpy.ndarray</span>
+<span class="sd">        incomp_data : numpy.ndarray</span>
 <span class="sd">            The time series with contamination (NaN values).</span>
 
 <span class="sd">        Returns</span>
 <span class="sd">        -------</span>
 <span class="sd">        None</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span> <span class="o">=</span> <span class="n">ground_truth</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">imputation</span> <span class="o">=</span> <span class="n">imputation</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">contamination</span> <span class="o">=</span> <span class="n">contamination</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">input_data</span> <span class="o">=</span> <span class="n">input_data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">recov_data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span> <span class="o">=</span> <span class="n">incomp_data</span>
 
-<div class="viewcode-block" id="Evaluation.metrics_computation">
-<a class="viewcode-back" href="../../../imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.metrics_computation">[docs]</a>
-    <span class="k">def</span> <span class="nf">metrics_computation</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+<div class="viewcode-block" id="Evaluation.compute_all_metrics">
+<a class="viewcode-back" href="../../../imputegap.evaluation.html#imputegap.recovery.evaluation.Evaluation.compute_all_metrics">[docs]</a>
+    <span class="k">def</span> <span class="nf">compute_all_metrics</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Compute a set of evaluation metrics for the imputation based on the ground truth and contamination data.</span>
 
@@ -175,9 +175,9 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 <span class="sd">        float</span>
 <span class="sd">            The RMSE value for NaN positions in the contamination dataset.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contamination</span><span class="p">)</span>
+        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">)</span>
 
-        <span class="n">mse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">imputation</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
+        <span class="n">mse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">input_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">])</span> <span class="o">**</span> <span class="mi">2</span><span class="p">)</span>
         <span class="n">rmse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">mse</span><span class="p">)</span>
 
         <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="n">rmse</span><span class="p">)</span></div>
@@ -196,9 +196,9 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 <span class="sd">        float</span>
 <span class="sd">            The MAE value for NaN positions in the contamination dataset.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contamination</span><span class="p">)</span>
+        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">)</span>
 
-        <span class="n">absolute_error</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">imputation</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">])</span>
+        <span class="n">absolute_error</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">input_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">])</span>
         <span class="n">mean_absolute_error</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">absolute_error</span><span class="p">)</span>
 
         <span class="k">return</span> <span class="n">mean_absolute_error</span></div>
@@ -218,16 +218,16 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 <span class="sd">        float</span>
 <span class="sd">            The mutual information (MI) score for NaN positions in the contamination dataset.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contamination</span><span class="p">)</span>
+        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">)</span>
 
         <span class="c1"># Discretize the continuous data into bins</span>
-        <span class="n">ground_truth_binned</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">digitize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span>
-                                          <span class="n">bins</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">histogram_bin_edges</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span> <span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">))</span>
-        <span class="n">imputation_binned</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">digitize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">imputation</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span>
-                                        <span class="n">bins</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">histogram_bin_edges</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">imputation</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span> <span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">))</span>
+        <span class="n">input_data_binned</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">digitize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">input_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span>
+                                          <span class="n">bins</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">histogram_bin_edges</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">input_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span> <span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">))</span>
+        <span class="n">imputation_binned</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">digitize</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span>
+                                        <span class="n">bins</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">histogram_bin_edges</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">],</span> <span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">))</span>
 
-        <span class="n">mi_discrete</span> <span class="o">=</span> <span class="n">mutual_info_score</span><span class="p">(</span><span class="n">ground_truth_binned</span><span class="p">,</span> <span class="n">imputation_binned</span><span class="p">)</span>
-        <span class="c1"># mi_continuous = mutual_info_score(self.ground_truth[nan_locations], self.ground_truth[nan_locations])</span>
+        <span class="n">mi_discrete</span> <span class="o">=</span> <span class="n">mutual_info_score</span><span class="p">(</span><span class="n">input_data_binned</span><span class="p">,</span> <span class="n">imputation_binned</span><span class="p">)</span>
+        <span class="c1"># mi_continuous = mutual_info_score(self.input_data[nan_locations], self.input_data[nan_locations])</span>
 
         <span class="k">return</span> <span class="n">mi_discrete</span></div>
 
@@ -246,11 +246,11 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
 <span class="sd">        float</span>
 <span class="sd">            The Pearson correlation coefficient for NaN positions in the contamination dataset.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contamination</span><span class="p">)</span>
-        <span class="n">ground_truth_values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ground_truth</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span>
-        <span class="n">imputed_values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">imputation</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span>
+        <span class="n">nan_locations</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">)</span>
+        <span class="n">input_data_values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">input_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span>
+        <span class="n">imputed_values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">[</span><span class="n">nan_locations</span><span class="p">]</span>
 
-        <span class="n">correlation</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">pearsonr</span><span class="p">(</span><span class="n">ground_truth_values</span><span class="p">,</span> <span class="n">imputed_values</span><span class="p">)</span>
+        <span class="n">correlation</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">pearsonr</span><span class="p">(</span><span class="n">input_data_values</span><span class="p">,</span> <span class="n">imputed_values</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">correlation</span><span class="p">):</span>
             <span class="n">correlation</span> <span class="o">=</span> <span class="mi">0</span>
@@ -268,7 +268,7 @@ <h1>Source code for imputegap.recovery.evaluation</h1><div class="highlight"><pr
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/recovery/explainer.html b/docs/generation/build/html/modules/imputegap/recovery/explainer.html
index eb22103e..9752f0d9 100644
--- a/docs/generation/build/html/modules/imputegap/recovery/explainer.html
+++ b/docs/generation/build/html/modules/imputegap/recovery/explainer.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.explainer &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.explainer &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -114,7 +114,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 <span class="sd">    load_configuration(file_path=None)</span>
 <span class="sd">        Load categories and features from a TOML file.</span>
 
-<span class="sd">    extract_features(data, features_categories, features_list, do_catch24=True)</span>
+<span class="sd">    extractor_pycatch(data, features_categories, features_list, do_catch24=True)</span>
 <span class="sd">        Extract features from time series data using pycatch22.</span>
 
 <span class="sd">    print(shap_values, shap_details=None)</span>
@@ -123,11 +123,11 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 <span class="sd">    convert_results(tmp, file, algo, descriptions, features, categories, mean_features, to_save)</span>
 <span class="sd">        Convert SHAP raw results into a refined format for display.</span>
 
-<span class="sd">    launch_shap_model(x_dataset, x_information, y_dataset, file, algorithm, splitter=10, display=False, verbose=False)</span>
+<span class="sd">    execute_shap_model(x_dataset, x_information, y_dataset, file, algorithm, splitter=10, display=False, verbose=False)</span>
 <span class="sd">        Launch the SHAP model to explain the dataset features.</span>
 
-<span class="sd">    shap_explainer(raw_data, algorithm=&quot;cdrec&quot;, params=None, contamination=&quot;mcar&quot;, missing_rate=0.4,</span>
-<span class="sd">                   block_size=10, protection=0.1, use_seed=True, seed=42, limitation=15, splitter=0,</span>
+<span class="sd">    shap_explainer(input_data, algorithm=&quot;cdrec&quot;, params=None, extractor=&quot;pycatch22&quot;, incomp_data=&quot;mcar&quot;,</span>
+<span class="sd">                   missing_rate=0.4, block_size=10, offset=0.1, seed=True, limitation=15, splitter=0,</span>
 <span class="sd">                   file_name=&quot;ts&quot;, display=False, verbose=False)</span>
 <span class="sd">        Handle parameters and set variables to launch the SHAP model.</span>
 
@@ -166,9 +166,9 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 
 
 
-<div class="viewcode-block" id="Explainer.extract_features">
-<a class="viewcode-back" href="../../../imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extract_features">[docs]</a>
-    <span class="k">def</span> <span class="nf">extract_features</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">features_categories</span><span class="p">,</span> <span class="n">features_list</span><span class="p">,</span> <span class="n">do_catch24</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<div class="viewcode-block" id="Explainer.extractor_pycatch">
+<a class="viewcode-back" href="../../../imputegap.explainer.html#imputegap.recovery.explainer.Explainer.extractor_pycatch">[docs]</a>
+    <span class="k">def</span> <span class="nf">extractor_pycatch</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">features_categories</span><span class="p">,</span> <span class="n">features_list</span><span class="p">,</span> <span class="n">do_catch24</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Extract features from time series data using pycatch22.</span>
 
@@ -249,21 +249,9 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 <span class="sd">        -------</span>
 <span class="sd">        None</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-
-        <span class="k">if</span> <span class="n">shap_details</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">x_data (with&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">shap_details</span><span class="p">),</span> <span class="s2">&quot;elements) : &quot;</span><span class="p">)</span>
-            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="nb">input</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">shap_details</span><span class="p">):</span>
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">FEATURES VALUES&quot;</span><span class="p">,</span> <span class="n">i</span><span class="p">,</span> <span class="s2">&quot;(&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nb">input</span><span class="p">),</span> <span class="s2">&quot;) : &quot;</span><span class="p">,</span> <span class="o">*</span><span class="nb">input</span><span class="p">)</span>
-
-            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">y_data (with&quot;</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">shap_details</span><span class="p">),</span> <span class="s2">&quot;elements) : &quot;</span><span class="p">)</span>
-
-            <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">output</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">shap_details</span><span class="p">):</span>
-                <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">RMSE SERIES </span><span class="si">{</span><span class="n">i</span><span class="si">:</span><span class="s2">&lt;5</span><span class="si">}</span><span class="s2"> : </span><span class="si">{</span><span class="n">output</span><span class="si">:</span><span class="s2">&lt;15</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
-
         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">SHAP Results details : &quot;</span><span class="p">)</span>
         <span class="k">for</span> <span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">algo</span><span class="p">,</span> <span class="n">rate</span><span class="p">,</span> <span class="n">description</span><span class="p">,</span> <span class="n">feature</span><span class="p">,</span> <span class="n">category</span><span class="p">,</span> <span class="n">mean_features</span><span class="p">)</span> <span class="ow">in</span> <span class="n">shap_values</span><span class="p">:</span>
-            <span class="nb">print</span><span class="p">(</span>
-                <span class="sa">f</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Feature : </span><span class="si">{</span><span class="n">x</span><span class="si">:</span><span class="s2">&lt;5</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">algo</span><span class="si">:</span><span class="s2">&lt;10</span><span class="si">}</span><span class="s2"> with a score of </span><span class="si">{</span><span class="n">rate</span><span class="si">:</span><span class="s2">&lt;10</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">category</span><span class="si">:</span><span class="s2">&lt;18</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">description</span><span class="si">:</span><span class="s2">&lt;75</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">feature</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
+            <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Feature : </span><span class="si">{</span><span class="n">x</span><span class="si">:</span><span class="s2">&lt;5</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">algo</span><span class="si">:</span><span class="s2">&lt;10</span><span class="si">}</span><span class="s2"> with a score of </span><span class="si">{</span><span class="n">rate</span><span class="si">:</span><span class="s2">&lt;10</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">category</span><span class="si">:</span><span class="s2">&lt;18</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">description</span><span class="si">:</span><span class="s2">&lt;75</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">feature</span><span class="si">}</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
 
 
 <div class="viewcode-block" id="Explainer.convert_results">
@@ -316,10 +304,10 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="k">return</span> <span class="n">result_shap</span></div>
 
 
-<div class="viewcode-block" id="Explainer.launch_shap_model">
-<a class="viewcode-back" href="../../../imputegap.explainer.html#imputegap.recovery.explainer.Explainer.launch_shap_model">[docs]</a>
-    <span class="k">def</span> <span class="nf">launch_shap_model</span><span class="p">(</span><span class="n">x_dataset</span><span class="p">,</span> <span class="n">x_information</span><span class="p">,</span> <span class="n">y_dataset</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">splitter</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
-                          <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="Explainer.execute_shap_model">
+<a class="viewcode-back" href="../../../imputegap.explainer.html#imputegap.recovery.explainer.Explainer.execute_shap_model">[docs]</a>
+    <span class="k">def</span> <span class="nf">execute_shap_model</span><span class="p">(</span><span class="n">x_dataset</span><span class="p">,</span> <span class="n">x_information</span><span class="p">,</span> <span class="n">y_dataset</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">splitter</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
+                           <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Launch the SHAP model for explaining the features of the dataset.</span>
 
@@ -348,14 +336,14 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 <span class="sd">            Results of the SHAP explainer model.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">Initilization of the SHAP model with &quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">x_information</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">Initialization of the SHAP model with dimension&quot;</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">x_information</span><span class="p">)</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
 
         <span class="n">path_file</span> <span class="o">=</span> <span class="s2">&quot;./assets/shap/&quot;</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path_file</span><span class="p">):</span>
             <span class="n">path_file</span> <span class="o">=</span> <span class="s2">&quot;./imputegap&quot;</span> <span class="o">+</span> <span class="n">path_file</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
 
         <span class="n">x_features</span><span class="p">,</span> <span class="n">x_categories</span><span class="p">,</span> <span class="n">x_descriptions</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[]</span>
-        <span class="n">x_fs</span><span class="p">,</span> <span class="n">x_cs</span><span class="p">,</span> <span class="n">x_ds</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[]</span>
+        <span class="n">x_fs</span><span class="p">,</span> <span class="n">x_cs</span><span class="p">,</span> <span class="n">x_ds</span><span class="p">,</span> <span class="n">alphas</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[]</span>
 
         <span class="k">for</span> <span class="n">current_time_series</span> <span class="ow">in</span> <span class="n">x_information</span><span class="p">:</span>
             <span class="n">x_fs</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
@@ -415,28 +403,30 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">path_file</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">summary_plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">shval</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">x_test</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">feature_names</span><span class="o">=</span><span class="n">series_names</span><span class="p">,</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
         <span class="n">alpha</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path_file</span> <span class="o">+</span> <span class="n">file</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</span> <span class="o">+</span> <span class="n">algorithm</span> <span class="o">+</span> <span class="s2">&quot;_shap_reverse_plot.png&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP Features by Series&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">plots</span><span class="o">.</span><span class="n">waterfall</span><span class="p">(</span><span class="n">shval_x</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
         <span class="n">alpha</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path_file</span> <span class="o">+</span> <span class="n">file</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</span> <span class="o">+</span> <span class="n">algorithm</span> <span class="o">+</span> <span class="s2">&quot;_DTL_Waterfall.png&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP Waterfall Results&quot;</span><span class="p">)</span>
+        <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">gcf</span><span class="p">()</span>  <span class="c1"># Get the current figure created by SHAP</span>
+        <span class="n">fig</span><span class="o">.</span><span class="n">set_size_inches</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>  <span class="c1"># Ensure the size is correct</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
-        <span class="n">shap</span><span class="o">.</span><span class="n">plots</span><span class="o">.</span><span class="n">beeswarm</span><span class="p">(</span><span class="n">shval_x</span><span class="p">,</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
+        <span class="n">shap</span><span class="o">.</span><span class="n">plots</span><span class="o">.</span><span class="n">beeswarm</span><span class="p">(</span><span class="n">shval_x</span><span class="p">,</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">,</span> <span class="n">plot_size</span><span class="o">=</span><span class="p">(</span><span class="mi">22</span><span class="p">,</span> <span class="mi">10</span><span class="p">))</span>
         <span class="n">alpha</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path_file</span> <span class="o">+</span> <span class="n">file</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</span> <span class="o">+</span> <span class="n">algorithm</span> <span class="o">+</span> <span class="s2">&quot;_DTL_Beeswarm.png&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP Beeswarm Results&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">total_weights_for_all_algorithms</span> <span class="o">=</span> <span class="p">[]</span>
 
@@ -493,7 +483,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP details of geometry&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">summary_plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">transformation</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">transformationT</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">plot_size</span><span class="o">=</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
                           <span class="n">feature_names</span><span class="o">=</span><span class="n">transformationDesc</span><span class="p">,</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
@@ -501,7 +491,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP details of transformation&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">summary_plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">correlation</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">correlationT</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">plot_size</span><span class="o">=</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">10</span><span class="p">),</span>
                           <span class="n">feature_names</span><span class="o">=</span><span class="n">correlationDesc</span><span class="p">,</span> <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
@@ -509,7 +499,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP details of correlation&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">summary_plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">trend</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">trendT</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">plot_size</span><span class="o">=</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span> <span class="n">feature_names</span><span class="o">=</span><span class="n">trendDesc</span><span class="p">,</span>
                           <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
@@ -517,7 +507,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP details of Trend&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">aggregation_features</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">geometry</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
         <span class="n">aggregation_features</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">correlation</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">))</span>
@@ -539,7 +529,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">get_xaxis</span><span class="p">()</span><span class="o">.</span><span class="n">set_visible</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="n">shap</span><span class="o">.</span><span class="n">summary_plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">aggregation_features</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">aggregation_test</span><span class="p">)</span><span class="o">.</span><span class="n">T</span><span class="p">,</span> <span class="n">feature_names</span><span class="o">=</span><span class="n">series_names</span><span class="p">,</span>
                           <span class="n">show</span><span class="o">=</span><span class="n">display</span><span class="p">)</span>
@@ -547,7 +537,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">&quot;SHAP Aggregation Features by Series&quot;</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
         <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t\t</span><span class="s2">GRAPH has benn computed : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">alphas</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alpha</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t\t</span><span class="s2">SHAP Families details :&quot;</span><span class="p">)</span>
@@ -566,6 +556,9 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 
         <span class="n">total_weights_for_all_algorithms</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">total_weights_for_all_algorithms</span><span class="p">,</span> <span class="n">total_weights_percent</span><span class="p">)</span>
 
+        <span class="k">for</span> <span class="n">alpha</span> <span class="ow">in</span> <span class="n">alphas</span><span class="p">:</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n\t</span><span class="s2">plot has been saved : &quot;</span><span class="p">,</span> <span class="n">alpha</span><span class="p">)</span>
+
         <span class="n">results_shap</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">convert_results</span><span class="p">(</span><span class="n">total_weights_for_all_algorithms</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">x_descriptions</span><span class="p">,</span>
                                                  <span class="n">x_features</span><span class="p">,</span> <span class="n">x_categories</span><span class="p">,</span> <span class="n">mean_features</span><span class="p">,</span>
                                                  <span class="n">to_save</span><span class="o">=</span><span class="n">path_file</span> <span class="o">+</span> <span class="n">file</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</span> <span class="o">+</span> <span class="n">algorithm</span><span class="p">)</span>
@@ -575,36 +568,36 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 
 <div class="viewcode-block" id="Explainer.shap_explainer">
 <a class="viewcode-back" href="../../../imputegap.explainer.html#imputegap.recovery.explainer.Explainer.shap_explainer">[docs]</a>
-    <span class="k">def</span> <span class="nf">shap_explainer</span><span class="p">(</span><span class="n">raw_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">contamination</span><span class="o">=</span><span class="s2">&quot;mcar&quot;</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.4</span><span class="p">,</span>
-                       <span class="n">block_size</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">use_seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="mi">42</span><span class="p">,</span> <span class="n">limitation</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">splitter</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
+    <span class="k">def</span> <span class="nf">shap_explainer</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">extractor</span><span class="o">=</span><span class="s2">&quot;pycatch22&quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="o">=</span><span class="s2">&quot;mcar&quot;</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.4</span><span class="p">,</span>
+                       <span class="n">block_size</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">limit_ratio</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">split_ratio</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
                        <span class="n">file_name</span><span class="o">=</span><span class="s2">&quot;ts&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">verbose</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Handle parameters and set variables to launch the SHAP model.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        raw_data : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The original time series dataset.</span>
 <span class="sd">        algorithm : str, optional</span>
 <span class="sd">            The algorithm used for imputation (default is &#39;cdrec&#39;). Valid values: &#39;cdrec&#39;, &#39;stmvl&#39;, &#39;iim&#39;, &#39;mrnn&#39;.</span>
 <span class="sd">        params : dict, optional</span>
 <span class="sd">            Parameters for the algorithm.</span>
-<span class="sd">        contamination : str, optional</span>
-<span class="sd">            Contamination scenario to apply (default is &#39;mcar&#39;).</span>
+<span class="sd">        pattern : str, optional</span>
+<span class="sd">            Contamination pattern to apply (default is &#39;mcar&#39;).</span>
+<span class="sd">        extractor : str, optional</span>
+<span class="sd">            Extractor use to get the features of the data (default is &#39;pycatch22&#39;).</span>
 <span class="sd">        missing_rate : float, optional</span>
 <span class="sd">            Percentage of missing values per series (default is 0.4).</span>
 <span class="sd">        block_size : int, optional</span>
 <span class="sd">            Size of the block to remove at each random position selected (default is 10).</span>
-<span class="sd">        protection : float, optional</span>
+<span class="sd">        offset : float, optional</span>
 <span class="sd">            Size of the uncontaminated section at the beginning of the time series (default is 0.1).</span>
-<span class="sd">        use_seed : bool, optional</span>
+<span class="sd">        seed : bool, optional</span>
 <span class="sd">            Whether to use a seed for reproducibility (default is True).</span>
-<span class="sd">        seed : int, optional</span>
-<span class="sd">            Seed value for reproducibility (default is 42).</span>
-<span class="sd">        limitation : int, optional</span>
-<span class="sd">            Limitation on the number of series for the model (default is 15).</span>
-<span class="sd">        splitter : int, optional</span>
-<span class="sd">            Limitation on the training series for the model (default is 0).</span>
+<span class="sd">        limit_ratio : flaot, optional</span>
+<span class="sd">            Limitation on the number of series for the model (default is 1).</span>
+<span class="sd">        split_ratio : flaot, optional</span>
+<span class="sd">            Limitation on the training series for the model (default is 0.6).</span>
 <span class="sd">        file_name : str, optional</span>
 <span class="sd">            Name of the dataset file (default is &#39;ts&#39;).</span>
 <span class="sd">        display : bool, optional</span>
@@ -630,61 +623,76 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
 
         <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
-        <span class="k">if</span> <span class="n">limitation</span> <span class="o">&gt;</span> <span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
-            <span class="n">limitation</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="mf">0.75</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">limit_ratio</span> <span class="o">&lt;</span> <span class="mf">0.05</span> <span class="ow">or</span> <span class="n">limit_ratio</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">limit percentage higher than 100%, reduce to 100</span><span class="si">% o</span><span class="s2">f the dataset&quot;</span><span class="p">)</span>
+            <span class="n">limit_ratio</span> <span class="o">=</span> <span class="mi">1</span>
 
-        <span class="k">if</span> <span class="n">splitter</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">splitter</span> <span class="o">&gt;=</span> <span class="n">limitation</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
-            <span class="n">splitter</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">limitation</span> <span class="o">*</span> <span class="mf">0.60</span><span class="p">)</span>
+        <span class="n">M</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">limit</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">limit_ratio</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">split_ratio</span> <span class="o">&lt;</span> <span class="mf">0.05</span> <span class="ow">or</span> <span class="n">split_ratio</span> <span class="o">&gt;</span> <span class="mf">0.95</span><span class="p">:</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">split ratio to small or to high, reduce to 60</span><span class="si">% o</span><span class="s2">f the dataset&quot;</span><span class="p">)</span>
+            <span class="n">split_ratio</span> <span class="o">=</span> <span class="mf">0.6</span>
+
+        <span class="n">training_ratio</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">limit</span> <span class="o">*</span> <span class="n">split_ratio</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">limit</span> <span class="o">&gt;</span> <span class="n">M</span><span class="p">:</span>
+            <span class="n">limit</span> <span class="o">=</span> <span class="n">M</span>
+
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">From&quot;</span><span class="p">,</span> <span class="n">limit</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">,</span> <span class="n">M</span><span class="p">,</span> <span class="s2">&quot;elements, the training dataset has been set with&quot;</span><span class="p">,</span> <span class="n">training_ratio</span><span class="p">,</span><span class="s2">&quot;elements and the testing dataset with&quot;</span><span class="p">,</span> <span class="p">(</span><span class="n">limit</span><span class="o">-</span><span class="n">training_ratio</span><span class="p">),</span> <span class="s2">&quot;elements&quot;</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">verbose</span><span class="p">:</span>
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;SHAP Explainer has been called</span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">,</span>
                   <span class="s2">&quot;missing_values (&quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%)</span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">,</span>
-                  <span class="s2">&quot;for a contamination (&quot;</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="s2">&quot;), </span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;for a contamination (&quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s2">&quot;), </span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">,</span>
                   <span class="s2">&quot;imputated by (&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;) with params (&quot;</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="s2">&quot;)</span><span class="se">\n\t</span><span class="s2">&quot;</span><span class="p">,</span>
-                  <span class="s2">&quot;with limitation and splitter after verification of (&quot;</span><span class="p">,</span> <span class="n">limitation</span><span class="p">,</span> <span class="s2">&quot;) and (&quot;</span><span class="p">,</span> <span class="n">splitter</span><span class="p">,</span> <span class="s2">&quot;) for &quot;</span><span class="p">,</span>
-                  <span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="s2">&quot;...</span><span class="se">\n\n\t</span><span class="s2">Generation of the dataset with the time series...&quot;</span><span class="p">)</span>
+                  <span class="s2">&quot;with limitation and splitter after verification of (&quot;</span><span class="p">,</span> <span class="n">limit</span><span class="p">,</span> <span class="s2">&quot;) and (&quot;</span><span class="p">,</span> <span class="n">training_ratio</span><span class="p">,</span> <span class="s2">&quot;) for &quot;</span><span class="p">,</span>
+                  <span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="s2">&quot;...</span><span class="se">\n\n\t</span><span class="s2">Generation of the dataset with the time series...&quot;</span><span class="p">)</span>
 
-        <span class="n">ground_truth_matrices</span><span class="p">,</span> <span class="n">obfuscated_matrices</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span>
+        <span class="n">input_data_matrices</span><span class="p">,</span> <span class="n">obfuscated_matrices</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span>
         <span class="n">output_metrics</span><span class="p">,</span> <span class="n">output_rmse</span><span class="p">,</span> <span class="n">input_params</span><span class="p">,</span> <span class="n">input_params_full</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[]</span>
 
         <span class="n">categories</span><span class="p">,</span> <span class="n">features</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">load_configuration</span><span class="p">()</span>
 
-        <span class="k">for</span> <span class="n">current_series</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">limitation</span><span class="p">):</span>
+        <span class="k">for</span> <span class="n">current_series</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">limit</span><span class="p">):</span>
 
-            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Generation &quot;</span><span class="p">,</span> <span class="n">current_series</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">,</span> <span class="n">limitation</span><span class="p">,</span> <span class="s2">&quot;(&quot;</span><span class="p">,</span> <span class="nb">int</span><span class="p">((</span><span class="n">current_series</span> <span class="o">/</span> <span class="n">limitation</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">),</span> <span class="s2">&quot;%)________________________________________________________&quot;</span><span class="p">)</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Generation &quot;</span><span class="p">,</span> <span class="n">current_series</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">,</span> <span class="n">limit</span><span class="p">,</span> <span class="s2">&quot;(&quot;</span><span class="p">,</span> <span class="nb">int</span><span class="p">((</span><span class="n">current_series</span> <span class="o">/</span> <span class="n">limit</span><span class="p">)</span> <span class="o">*</span> <span class="mi">100</span><span class="p">),</span> <span class="s2">&quot;%)________________________________________________________&quot;</span><span class="p">)</span>
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Contamination &quot;</span><span class="p">,</span> <span class="n">current_series</span><span class="p">,</span> <span class="s2">&quot;...&quot;</span><span class="p">)</span>
 
-            <span class="k">if</span> <span class="n">contamination</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
-                <span class="n">obfuscated_matrix</span> <span class="o">=</span> <span class="n">TimeSeries</span><span class="p">()</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">ts</span><span class="o">=</span><span class="n">raw_data</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="n">current_series</span><span class="p">,</span>
-                                                                  <span class="n">missing_rate</span><span class="o">=</span><span class="n">missing_rate</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size</span><span class="p">,</span>
-                                                                  <span class="n">protection</span><span class="o">=</span><span class="n">protection</span><span class="p">,</span> <span class="n">use_seed</span><span class="o">=</span><span class="n">use_seed</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span>
-                                                                  <span class="n">explainer</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">pattern</span> <span class="o">==</span> <span class="s2">&quot;mcar&quot;</span><span class="p">:</span>
+                <span class="n">incomp_data</span> <span class="o">=</span> <span class="n">TimeSeries</span><span class="p">()</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">mcar</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">input_data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="n">current_series</span><span class="p">,</span>
+                                                                    <span class="n">missing_rate</span><span class="o">=</span><span class="n">missing_rate</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="n">block_size</span><span class="p">,</span>
+                                                                    <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span>
+                                                                    <span class="n">explainer</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
             <span class="k">else</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Contamination proposed not found : &quot;</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="s2">&quot; &gt;&gt; BREAK&quot;</span><span class="p">)</span>
+                <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Contamination proposed not found : &quot;</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="s2">&quot; &gt;&gt; BREAK&quot;</span><span class="p">)</span>
                 <span class="k">return</span> <span class="kc">None</span>
 
-            <span class="n">ground_truth_matrices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">raw_data</span><span class="p">)</span>
-            <span class="n">obfuscated_matrices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">)</span>
+            <span class="n">input_data_matrices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">input_data</span><span class="p">)</span>
+            <span class="n">obfuscated_matrices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 
-            <span class="n">catch_fct</span><span class="p">,</span> <span class="n">descriptions</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">extract_features</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">),</span> <span class="n">categories</span><span class="p">,</span> <span class="n">features</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
-            <span class="n">extracted_features</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">catch_fct</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
+            <span class="k">if</span> <span class="n">extractor</span> <span class="o">==</span> <span class="s2">&quot;pycatch22&quot;</span><span class="p">:</span>
+                <span class="n">catch_fct</span><span class="p">,</span> <span class="n">descriptions</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">extractor_pycatch</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">),</span> <span class="n">categories</span><span class="p">,</span> <span class="n">features</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
+                <span class="n">extracted_features</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">catch_fct</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span>
+            <span class="k">else</span><span class="p">:</span>
+                <span class="n">catch_fct</span><span class="p">,</span> <span class="n">descriptions</span><span class="p">,</span> <span class="n">extracted_features</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span>
 
             <span class="n">input_params</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">extracted_features</span><span class="p">)</span>
             <span class="n">input_params_full</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">descriptions</span><span class="p">)</span>
 
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\t</span><span class="s2">Imputation &quot;</span><span class="p">,</span> <span class="n">current_series</span><span class="p">,</span> <span class="s2">&quot;...&quot;</span><span class="p">)</span>
             <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;cdrec&quot;</span><span class="p">:</span>
-                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">)</span>
+                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;stmvl&quot;</span><span class="p">:</span>
-                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">)</span>
+                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;iim&quot;</span><span class="p">:</span>
-                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">)</span>
+                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;mrnn&quot;</span><span class="p">:</span>
-                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">obfuscated_matrix</span><span class="p">)</span>
+                <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
 
             <span class="n">algo</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="kc">False</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">raw_data</span><span class="p">)</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="n">params</span><span class="p">)</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">input_data</span><span class="p">)</span>
             <span class="n">imputation_results</span> <span class="o">=</span> <span class="n">algo</span><span class="o">.</span><span class="n">metrics</span>
 
             <span class="n">output_metrics</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">imputation_results</span><span class="p">)</span>
@@ -694,8 +702,8 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
         <span class="k">for</span> <span class="nb">input</span><span class="p">,</span> <span class="n">output</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">input_params</span><span class="p">,</span> <span class="n">output_metrics</span><span class="p">):</span>
             <span class="n">shap_details</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="nb">input</span><span class="p">,</span> <span class="n">output</span><span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">]))</span>
 
-        <span class="n">shap_values</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">launch_shap_model</span><span class="p">(</span><span class="n">input_params</span><span class="p">,</span> <span class="n">input_params_full</span><span class="p">,</span> <span class="n">output_rmse</span><span class="p">,</span> <span class="n">file_name</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span>
-                                                  <span class="n">splitter</span><span class="p">,</span> <span class="n">display</span><span class="p">,</span> <span class="n">verbose</span><span class="p">)</span>
+        <span class="n">shap_values</span> <span class="o">=</span> <span class="n">Explainer</span><span class="o">.</span><span class="n">execute_shap_model</span><span class="p">(</span><span class="n">input_params</span><span class="p">,</span> <span class="n">input_params_full</span><span class="p">,</span> <span class="n">output_rmse</span><span class="p">,</span> <span class="n">file_name</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span>
+                                                   <span class="n">training_ratio</span><span class="p">,</span> <span class="n">display</span><span class="p">,</span> <span class="n">verbose</span><span class="p">)</span>
 
         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">SHAP Explainer succeeded without fail, please find the results in : ./assets/shap/*</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
@@ -714,7 +722,7 @@ <h1>Source code for imputegap.recovery.explainer</h1><div class="highlight"><pre
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/recovery/imputation.html b/docs/generation/build/html/modules/imputegap/recovery/imputation.html
index efe5a272..ec69e9f6 100644
--- a/docs/generation/build/html/modules/imputegap/recovery/imputation.html
+++ b/docs/generation/build/html/modules/imputegap/recovery/imputation.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.imputation &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.imputation &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -113,9 +113,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">    -------</span>
 <span class="sd">    impute(params=None):</span>
 <span class="sd">        Abstract method to perform the imputation.</span>
-<span class="sd">    score(raw_matrix, imputed_matrix=None):</span>
+<span class="sd">    score(input_data, recov_data=None):</span>
 <span class="sd">        Compute metrics for the imputed time series.</span>
-<span class="sd">    _check_params(user_defined, params):</span>
+<span class="sd">    _check_params(user_def, params):</span>
 <span class="sd">        Check and format parameters for imputation.</span>
 <span class="sd">    _optimize(parameters={}):</span>
 <span class="sd">        Optimize hyperparameters for the imputation algorithm.</span>
@@ -125,17 +125,17 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <div class="viewcode-block" id="BaseImputer.__init__">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.BaseImputer.__init__">[docs]</a>
-    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infected_matrix</span><span class="p">):</span>
+    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Initialize the BaseImputer with an infected time series matrix.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        infected_matrix : numpy.ndarray</span>
+<span class="sd">        incomp_data : numpy.ndarray</span>
 <span class="sd">            Matrix used during the imputation of the time series.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span> <span class="o">=</span> <span class="n">infected_matrix</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="kc">None</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span> <span class="o">=</span> <span class="n">incomp_data</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="kc">None</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">metrics</span> <span class="o">=</span> <span class="kc">None</span>
         <span class="bp">self</span><span class="o">.</span><span class="n">parameters</span> <span class="o">=</span> <span class="kc">None</span></div>
 
@@ -161,34 +161,34 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <div class="viewcode-block" id="BaseImputer.score">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.BaseImputer.score">[docs]</a>
-    <span class="k">def</span> <span class="nf">score</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">raw_matrix</span><span class="p">,</span> <span class="n">imputed_matrix</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">score</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">recov_data</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Compute evaluation metrics for the imputed time series.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        raw_matrix : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The original time series without contamination.</span>
-<span class="sd">        imputed_matrix : numpy.ndarray, optional</span>
+<span class="sd">        recov_data : numpy.ndarray, optional</span>
 <span class="sd">            The imputed time series (default is None).</span>
 
 <span class="sd">        Returns</span>
 <span class="sd">        -------</span>
 <span class="sd">        None</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">imputed_matrix</span>
+        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">recov_data</span>
 
-        <span class="bp">self</span><span class="o">.</span><span class="n">metrics</span> <span class="o">=</span> <span class="n">Evaluation</span><span class="p">(</span><span class="n">raw_matrix</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">)</span><span class="o">.</span><span class="n">metrics_computation</span><span class="p">()</span></div>
+        <span class="bp">self</span><span class="o">.</span><span class="n">metrics</span> <span class="o">=</span> <span class="n">Evaluation</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">)</span><span class="o">.</span><span class="n">compute_all_metrics</span><span class="p">()</span></div>
 
 
-    <span class="k">def</span> <span class="nf">_check_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_defined</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">_check_params</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_def</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Format the parameters for optimization or imputation.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        user_defined : bool</span>
+<span class="sd">        user_def : bool</span>
 <span class="sd">            Whether the parameters are user-defined or not.</span>
 <span class="sd">        params : dict or list</span>
 <span class="sd">            List or dictionary of parameters.</span>
@@ -200,7 +200,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">        &quot;&quot;&quot;</span>
 
         <span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="k">if</span> <span class="ow">not</span> <span class="n">user_defined</span><span class="p">:</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">user_def</span><span class="p">:</span>
                 <span class="bp">self</span><span class="o">.</span><span class="n">_optimize</span><span class="p">(</span><span class="n">params</span><span class="p">)</span>
 
                 <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parameters</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
@@ -233,7 +233,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
 <span class="sd">        parameters : dict</span>
-<span class="sd">            Dictionary containing optimization configurations such as ground_truth, optimizer, and options.</span>
+<span class="sd">            Dictionary containing optimization configurations such as input_data, optimizer, and options.</span>
 
 <span class="sd">        Returns</span>
 <span class="sd">        -------</span>
@@ -241,9 +241,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="kn">from</span> <span class="nn">imputegap.recovery.optimization</span> <span class="kn">import</span> <span class="n">Optimization</span>
 
-        <span class="n">raw_data</span> <span class="o">=</span> <span class="n">parameters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;ground_truth&#39;</span><span class="p">)</span>
-        <span class="k">if</span> <span class="n">raw_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Need ground_truth to be able to adapt the hyper-parameters: </span><span class="si">{</span><span class="n">raw_data</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
+        <span class="n">input_data</span> <span class="o">=</span> <span class="n">parameters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;input_data&#39;</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">input_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Need input_data to be able to adapt the hyper-parameters: </span><span class="si">{</span><span class="n">input_data</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
 
         <span class="n">optimizer</span> <span class="o">=</span> <span class="n">parameters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;optimizer&#39;</span><span class="p">,</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">)</span>
         <span class="n">defaults</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="n">optimizer</span><span class="p">)</span>
@@ -257,13 +257,13 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
             <span class="n">n_calls</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;n_calls&#39;</span><span class="p">,</span> <span class="n">n_calls_d</span><span class="p">)</span>
             <span class="n">random_starts</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;n_random_starts&#39;</span><span class="p">,</span> <span class="n">n_random_starts_d</span><span class="p">)</span>
             <span class="n">func</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;acq_func&#39;</span><span class="p">,</span> <span class="n">acq_func_d</span><span class="p">)</span>
-            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
+            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
 
             <span class="n">bo_optimizer</span> <span class="o">=</span> <span class="n">Optimization</span><span class="o">.</span><span class="n">Bayesian</span><span class="p">()</span>
 
-            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">bo_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">ground_truth</span><span class="o">=</span><span class="n">raw_data</span><span class="p">,</span>
-                                                      <span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span>
-                                                      <span class="n">selected_metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span>
+            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">bo_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">input_data</span><span class="p">,</span>
+                                                      <span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span>
+                                                      <span class="n">metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span>
                                                       <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
                                                       <span class="n">n_calls</span><span class="o">=</span><span class="n">n_calls</span><span class="p">,</span>
                                                       <span class="n">n_random_starts</span><span class="o">=</span><span class="n">random_starts</span><span class="p">,</span>
@@ -279,13 +279,13 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
             <span class="n">w</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;w&#39;</span><span class="p">,</span> <span class="n">w_d</span><span class="p">)</span>
             <span class="n">iterations</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;iterations&#39;</span><span class="p">,</span> <span class="n">iterations_d</span><span class="p">)</span>
             <span class="n">n_processes</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;n_processes&#39;</span><span class="p">,</span> <span class="n">n_processes_d</span><span class="p">)</span>
-            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
+            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
 
             <span class="n">swarm_optimizer</span> <span class="o">=</span> <span class="n">Optimization</span><span class="o">.</span><span class="n">ParticleSwarm</span><span class="p">()</span>
 
-            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">swarm_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">ground_truth</span><span class="o">=</span><span class="n">raw_data</span><span class="p">,</span>
-                                                         <span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span>
-                                                         <span class="n">selected_metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
+            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">swarm_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">input_data</span><span class="p">,</span>
+                                                         <span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span>
+                                                         <span class="n">metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
                                                          <span class="n">n_particles</span><span class="o">=</span><span class="n">n_particles</span><span class="p">,</span> <span class="n">c1</span><span class="o">=</span><span class="n">c1</span><span class="p">,</span> <span class="n">c2</span><span class="o">=</span><span class="n">c2</span><span class="p">,</span> <span class="n">w</span><span class="o">=</span><span class="n">w</span><span class="p">,</span>
                                                          <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">n_processes</span><span class="o">=</span><span class="n">n_processes</span><span class="p">)</span>
 
@@ -297,13 +297,13 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
             <span class="n">num_configs</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;num_configs&#39;</span><span class="p">,</span> <span class="n">num_configs_d</span><span class="p">)</span>
             <span class="n">num_iterations</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;num_iterations&#39;</span><span class="p">,</span> <span class="n">num_iterations_d</span><span class="p">)</span>
             <span class="n">reduction_factor</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;reduction_factor&#39;</span><span class="p">,</span> <span class="n">reduction_factor_d</span><span class="p">)</span>
-            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
+            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
 
             <span class="n">sh_optimizer</span> <span class="o">=</span> <span class="n">Optimization</span><span class="o">.</span><span class="n">SuccessiveHalving</span><span class="p">()</span>
 
-            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">sh_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">ground_truth</span><span class="o">=</span><span class="n">raw_data</span><span class="p">,</span>
-                                                      <span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span>
-                                                      <span class="n">selected_metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
+            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">sh_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">input_data</span><span class="p">,</span>
+                                                      <span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span>
+                                                      <span class="n">metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
                                                       <span class="n">num_configs</span><span class="o">=</span><span class="n">num_configs</span><span class="p">,</span> <span class="n">num_iterations</span><span class="o">=</span><span class="n">num_iterations</span><span class="p">,</span>
                                                       <span class="n">reduction_factor</span><span class="o">=</span><span class="n">reduction_factor</span><span class="p">)</span>
 
@@ -312,13 +312,13 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
             <span class="n">options</span> <span class="o">=</span> <span class="n">parameters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;options&#39;</span><span class="p">,</span> <span class="p">{})</span>
 
             <span class="n">n_calls</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;n_calls&#39;</span><span class="p">,</span> <span class="n">n_calls_d</span><span class="p">)</span>
-            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
+            <span class="n">metrics</span> <span class="o">=</span> <span class="n">options</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;metrics&#39;</span><span class="p">,</span> <span class="n">selected_metrics_d</span><span class="p">)</span>
 
             <span class="n">go_optimizer</span> <span class="o">=</span> <span class="n">Optimization</span><span class="o">.</span><span class="n">Greedy</span><span class="p">()</span>
 
-            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">go_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">ground_truth</span><span class="o">=</span><span class="n">raw_data</span><span class="p">,</span>
-                                                      <span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span>
-                                                      <span class="n">selected_metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
+            <span class="n">optimal_params</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">go_optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">input_data</span><span class="o">=</span><span class="n">input_data</span><span class="p">,</span>
+                                                      <span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span>
+                                                      <span class="n">metrics</span><span class="o">=</span><span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">,</span>
                                                       <span class="n">n_calls</span><span class="o">=</span><span class="n">n_calls</span><span class="p">)</span>
 
         <span class="bp">self</span><span class="o">.</span><span class="n">parameters</span> <span class="o">=</span> <span class="n">optimal_params</span></div>
@@ -333,21 +333,21 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">    Methods</span>
 <span class="sd">    -------</span>
-<span class="sd">    evaluate_params(ground_truth, contamination, configuration, algorithm=&quot;cdrec&quot;):</span>
+<span class="sd">    evaluate_params(input_data, incomp_data, configuration, algorithm=&quot;cdrec&quot;):</span>
 <span class="sd">        Evaluate imputation performance using given parameters and algorithm.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
 <div class="viewcode-block" id="Imputation.evaluate_params">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.Imputation.evaluate_params">[docs]</a>
-    <span class="k">def</span> <span class="nf">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">configuration</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">configuration</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Evaluate various metrics for given parameters and imputation algorithm.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        ground_truth : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The original time series without contamination.</span>
-<span class="sd">        contamination : numpy.ndarray</span>
+<span class="sd">        incomp_data : numpy.ndarray</span>
 <span class="sd">            The time series with contamination.</span>
 <span class="sd">        configuration : tuple</span>
 <span class="sd">            Tuple of the configuration of the algorithm.</span>
@@ -365,9 +365,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
         <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;cdrec&#39;</span><span class="p">:</span>
             <span class="n">rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span> <span class="o">=</span> <span class="n">configuration</span>
-            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">MatrixCompletion</span><span class="o">.</span><span class="n">CDRec</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="n">algo</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="kc">False</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;rank&quot;</span><span class="p">:</span> <span class="n">rank</span><span class="p">,</span> <span class="s2">&quot;epsilon&quot;</span><span class="p">:</span> <span class="n">epsilon</span><span class="p">,</span> <span class="s2">&quot;iterations&quot;</span><span class="p">:</span> <span class="n">iterations</span><span class="p">})</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;rank&quot;</span><span class="p">:</span> <span class="n">rank</span><span class="p">,</span> <span class="s2">&quot;epsilon&quot;</span><span class="p">:</span> <span class="n">epsilon</span><span class="p">,</span> <span class="s2">&quot;iterations&quot;</span><span class="p">:</span> <span class="n">iterations</span><span class="p">})</span>
 
         <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;iim&#39;</span><span class="p">:</span>
             <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">configuration</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
@@ -375,30 +375,30 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
             <span class="n">learning_neighbours</span> <span class="o">=</span> <span class="n">configuration</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
             <span class="n">alg_code</span> <span class="o">=</span> <span class="s2">&quot;iim &quot;</span> <span class="o">+</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;[\W_]&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">learning_neighbours</span><span class="p">))</span>
 
-            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">Statistics</span><span class="o">.</span><span class="n">IIM</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="n">algo</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="kc">False</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;learning_neighbours&quot;</span><span class="p">:</span> <span class="n">learning_neighbours</span><span class="p">,</span> <span class="s2">&quot;alg_code&quot;</span><span class="p">:</span> <span class="n">alg_code</span><span class="p">})</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;learning_neighbours&quot;</span><span class="p">:</span> <span class="n">learning_neighbours</span><span class="p">,</span> <span class="s2">&quot;alg_code&quot;</span><span class="p">:</span> <span class="n">alg_code</span><span class="p">})</span>
 
         <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;mrnn&#39;</span><span class="p">:</span>
             <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span> <span class="o">=</span> <span class="n">configuration</span>
 
-            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">DeepLearning</span><span class="o">.</span><span class="n">MRNN</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="n">algo</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="kc">False</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                         <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;hidden_dim&quot;</span><span class="p">:</span> <span class="n">hidden_dim</span><span class="p">,</span> <span class="s2">&quot;learning_rate&quot;</span><span class="p">:</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="s2">&quot;iterations&quot;</span><span class="p">:</span> <span class="n">iterations</span><span class="p">,</span>
                                 <span class="s2">&quot;seq_length&quot;</span><span class="p">:</span> <span class="mi">7</span><span class="p">})</span>
 
         <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;stmvl&#39;</span><span class="p">:</span>
             <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span> <span class="o">=</span> <span class="n">configuration</span>
 
-            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">contamination</span><span class="p">)</span>
+            <span class="n">algo</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">PatternSearch</span><span class="o">.</span><span class="n">STMVL</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">)</span>
             <span class="n">algo</span><span class="o">.</span><span class="n">logs</span> <span class="o">=</span> <span class="kc">False</span>
-            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;window_size&quot;</span><span class="p">:</span> <span class="n">window_size</span><span class="p">,</span> <span class="s2">&quot;gamma&quot;</span><span class="p">:</span> <span class="n">gamma</span><span class="p">,</span> <span class="s2">&quot;alpha&quot;</span><span class="p">:</span> <span class="n">alpha</span><span class="p">})</span>
+            <span class="n">algo</span><span class="o">.</span><span class="n">impute</span><span class="p">(</span><span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;window_size&quot;</span><span class="p">:</span> <span class="n">window_size</span><span class="p">,</span> <span class="s2">&quot;gamma&quot;</span><span class="p">:</span> <span class="n">gamma</span><span class="p">,</span> <span class="s2">&quot;alpha&quot;</span><span class="p">:</span> <span class="n">alpha</span><span class="p">})</span>
 
         <span class="k">else</span><span class="p">:</span>
             <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid algorithm: </span><span class="si">{</span><span class="n">algorithm</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
 
-        <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">)</span>
+        <span class="n">algo</span><span class="o">.</span><span class="n">score</span><span class="p">(</span><span class="n">input_data</span><span class="p">)</span>
         <span class="n">error_measures</span> <span class="o">=</span> <span class="n">algo</span><span class="o">.</span><span class="n">metrics</span>
 
         <span class="k">return</span> <span class="n">error_measures</span></div>
@@ -446,9 +446,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : ZeroImpute</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 <span class="sd">                &quot;&quot;&quot;</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">zero_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">zero_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -482,9 +482,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : MinImpute</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 <span class="sd">                &quot;&quot;&quot;</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">min_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">min_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -518,9 +518,9 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : MinImpute</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 <span class="sd">                &quot;&quot;&quot;</span>
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">mean_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">mean_impute</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -534,20 +534,20 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">            Methods</span>
 <span class="sd">            -------</span>
-<span class="sd">            impute(self, user_defined=True, params=None):</span>
+<span class="sd">            impute(self, user_def=True, params=None):</span>
 <span class="sd">                Perform imputation using the IIM algorithm.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
             <span class="n">algorithm</span> <span class="o">=</span> <span class="s2">&quot;iim&quot;</span>
 
 <div class="viewcode-block" id="Imputation.Statistics.IIM.impute">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.Imputation.Statistics.IIM.impute">[docs]</a>
-            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">                </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">                Perform imputation using the IIM algorithm.</span>
 
 <span class="sd">                Parameters</span>
 <span class="sd">                ----------</span>
-<span class="sd">                user_defined : bool, optional</span>
+<span class="sd">                user_def : bool, optional</span>
 <span class="sd">                    Whether to use user-defined or default parameters (default is True).</span>
 <span class="sd">                params : dict, optional</span>
 <span class="sd">                    Parameters of the IIM algorithm, if None, default ones are loaded.</span>
@@ -560,15 +560,15 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : IIM</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 
 <span class="sd">                Example</span>
 <span class="sd">                -------</span>
-<span class="sd">                &gt;&gt;&gt; iim_imputer = Imputation.Statistics.IIM(infected_matrix)</span>
+<span class="sd">                &gt;&gt;&gt; iim_imputer = Imputation.Statistics.IIM(incomp_data)</span>
 <span class="sd">                &gt;&gt;&gt; iim_imputer.impute()  # default parameters for imputation &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; iim_imputer.impute(user_defined=True, params={&#39;learning_neighbors&#39;: 10})  # user-defined  &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; iim_imputer.impute(user_defined=False, params={&quot;ground_truth&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
-<span class="sd">                &gt;&gt;&gt; imputed_data = iim_imputer.imputed_matrix</span>
+<span class="sd">                &gt;&gt;&gt; iim_imputer.impute(user_def=True, params={&#39;learning_neighbors&#39;: 10})  # user-defined  &gt; or</span>
+<span class="sd">                &gt;&gt;&gt; iim_imputer.impute(user_def=False, params={&quot;input_data&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
+<span class="sd">                &gt;&gt;&gt; recov_data = iim_imputer.recov_data</span>
 
 <span class="sd">                References</span>
 <span class="sd">                ----------</span>
@@ -576,12 +576,12 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                keywords: {Data models;Adaptation models;Computational modeling;Predictive models;Numerical models;Aggregates;Regression tree analysis;Missing values;Data imputation}</span>
 <span class="sd">                &quot;&quot;&quot;</span>
                 <span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-                    <span class="n">learning_neighbours</span><span class="p">,</span> <span class="n">algo_code</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_defined</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                    <span class="n">learning_neighbours</span><span class="p">,</span> <span class="n">algo_code</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_def</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
                 <span class="k">else</span><span class="p">:</span>
                     <span class="n">learning_neighbours</span><span class="p">,</span> <span class="n">algo_code</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">)</span>
 
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">iim</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="o">=</span><span class="n">learning_neighbours</span><span class="p">,</span>
-                                          <span class="n">algo_code</span><span class="o">=</span><span class="n">algo_code</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">iim</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">number_neighbor</span><span class="o">=</span><span class="n">learning_neighbours</span><span class="p">,</span>
+                                      <span class="n">algo_code</span><span class="o">=</span><span class="n">algo_code</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -608,7 +608,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">            Methods</span>
 <span class="sd">            -------</span>
-<span class="sd">            impute(self, user_defined=True, params=None):</span>
+<span class="sd">            impute(self, user_def=True, params=None):</span>
 <span class="sd">                Perform imputation using the CDRec algorithm.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
 
@@ -616,13 +616,13 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <div class="viewcode-block" id="Imputation.MatrixCompletion.CDRec.impute">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute">[docs]</a>
-            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">                </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">                Perform imputation using the CDRec algorithm.</span>
 
 <span class="sd">                Parameters</span>
 <span class="sd">                ----------</span>
-<span class="sd">                user_defined : bool, optional</span>
+<span class="sd">                user_def : bool, optional</span>
 <span class="sd">                    Whether to use user-defined or default parameters (default is True).</span>
 <span class="sd">                params : dict, optional</span>
 <span class="sd">                    Parameters of the CDRec algorithm or Auto-ML configuration, if None, default ones are loaded.</span>
@@ -638,7 +638,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">                    **Auto-ML parameters:**</span>
 
-<span class="sd">                    - ground_truth : numpy.ndarray</span>
+<span class="sd">                    - input_data : numpy.ndarray</span>
 <span class="sd">                        The original time series dataset without contamination.</span>
 <span class="sd">                    - optimizer : str</span>
 <span class="sd">                        The optimizer to use for parameter optimization. Valid values are &quot;bayesian&quot;, &quot;greedy&quot;, &quot;pso&quot;, or &quot;sh&quot;.</span>
@@ -649,7 +649,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">                        - n_calls : int, optional</span>
 <span class="sd">                            Number of calls to the objective function. Default is 3.</span>
-<span class="sd">                        - selected_metrics : list, optional</span>
+<span class="sd">                        - metrics : list, optional</span>
 <span class="sd">                            List of selected metrics to consider for optimization. Default is [&quot;RMSE&quot;].</span>
 <span class="sd">                        - n_random_starts : int, optional</span>
 <span class="sd">                            Number of initial calls to the objective function, from random points. Default is 50.</span>
@@ -660,7 +660,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">                        - n_calls : int, optional</span>
 <span class="sd">                            Number of calls to the objective function. Default is 3.</span>
-<span class="sd">                        - selected_metrics : list, optional</span>
+<span class="sd">                        - metrics : list, optional</span>
 <span class="sd">                            List of selected metrics to consider for optimization. Default is [&quot;RMSE&quot;].</span>
 
 <span class="sd">                        **PSO:**</span>
@@ -690,15 +690,15 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : CDRec</span>
-<span class="sd">                    CDRec object with `imputed_matrix` set.</span>
+<span class="sd">                    CDRec object with `recov_data` set.</span>
 
 <span class="sd">                Example</span>
 <span class="sd">                -------</span>
-<span class="sd">                &gt;&gt;&gt; cdrec_imputer = Imputation.MatrixCompletion.CDRec(infected_matrix)</span>
+<span class="sd">                &gt;&gt;&gt; cdrec_imputer = Imputation.MatrixCompletion.CDRec(incomp_data)</span>
 <span class="sd">                &gt;&gt;&gt; cdrec_imputer.impute()  # default parameters for imputation &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; cdrec_imputer.impute(user_defined=True, params={&#39;rank&#39;: 5, &#39;epsilon&#39;: 0.01, &#39;iterations&#39;: 100})  # user-defined &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; cdrec_imputer.impute(user_defined=False, params={&quot;ground_truth&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
-<span class="sd">                &gt;&gt;&gt; imputed_data = cdrec_imputer.imputed_matrix</span>
+<span class="sd">                &gt;&gt;&gt; cdrec_imputer.impute(user_def=True, params={&#39;rank&#39;: 5, &#39;epsilon&#39;: 0.01, &#39;iterations&#39;: 100})  # user-defined &gt; or</span>
+<span class="sd">                &gt;&gt;&gt; cdrec_imputer.impute(user_def=False, params={&quot;input_data&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
+<span class="sd">                &gt;&gt;&gt; recov_data = cdrec_imputer.recov_data</span>
 
 <span class="sd">                References</span>
 <span class="sd">                ----------</span>
@@ -706,12 +706,12 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                &quot;&quot;&quot;</span>
 
                 <span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-                    <span class="n">rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_defined</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                    <span class="n">rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_def</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
                 <span class="k">else</span><span class="p">:</span>
                     <span class="n">rank</span><span class="p">,</span> <span class="n">epsilon</span><span class="p">,</span> <span class="n">iterations</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">algorithm</span><span class="p">)</span>
 
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">cdrec</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="o">=</span><span class="n">rank</span><span class="p">,</span>
-                                            <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">epsilon</span><span class="o">=</span><span class="n">epsilon</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">cdrec</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">truncation_rank</span><span class="o">=</span><span class="n">rank</span><span class="p">,</span>
+                                        <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">epsilon</span><span class="o">=</span><span class="n">epsilon</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -739,20 +739,20 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">            Methods</span>
 <span class="sd">            -------</span>
-<span class="sd">            impute(self, user_defined=True, params=None):</span>
+<span class="sd">            impute(self, user_def=True, params=None):</span>
 <span class="sd">                Perform imputation using the MRNN algorithm.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
             <span class="n">algorithm</span> <span class="o">=</span> <span class="s2">&quot;mrnn&quot;</span>
 
 <div class="viewcode-block" id="Imputation.DeepLearning.MRNN.impute">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute">[docs]</a>
-            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">                </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">                Perform imputation using the MRNN algorithm.</span>
 
 <span class="sd">                Parameters</span>
 <span class="sd">                ----------</span>
-<span class="sd">                user_defined : bool, optional</span>
+<span class="sd">                user_def : bool, optional</span>
 <span class="sd">                    Whether to use user-defined or default parameters (default is True).</span>
 <span class="sd">                params : dict, optional</span>
 <span class="sd">                    Parameters of the MRNN algorithm, if None, default ones are loaded.</span>
@@ -769,29 +769,29 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : MRNN</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 
 <span class="sd">                Example</span>
 <span class="sd">                -------</span>
-<span class="sd">                &gt;&gt;&gt; mrnn_imputer = Imputation.DeepLearning.MRNN(infected_matrix)</span>
+<span class="sd">                &gt;&gt;&gt; mrnn_imputer = Imputation.DeepLearning.MRNN(incomp_data)</span>
 <span class="sd">                &gt;&gt;&gt; mrnn_imputer.impute()  # default parameters for imputation &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; mrnn_imputer.impute(user_defined=True, params={&#39;hidden_dim&#39;: 10, &#39;learning_rate&#39;:0.01, &#39;iterations&#39;:50, &#39;sequence_length&#39;: 7})  # user-defined &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; mrnn_imputer.impute(user_defined=False, params={&quot;ground_truth&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
-<span class="sd">                &gt;&gt;&gt; imputed_data = mrnn_imputer.imputed_matrix</span>
+<span class="sd">                &gt;&gt;&gt; mrnn_imputer.impute(user_def=True, params={&#39;hidden_dim&#39;: 10, &#39;learning_rate&#39;:0.01, &#39;iterations&#39;:50, &#39;sequence_length&#39;: 7})  # user-defined &gt; or</span>
+<span class="sd">                &gt;&gt;&gt; mrnn_imputer.impute(user_def=False, params={&quot;input_data&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
+<span class="sd">                &gt;&gt;&gt; recov_data = mrnn_imputer.recov_data</span>
 
 <span class="sd">                References</span>
 <span class="sd">                ----------</span>
 <span class="sd">                J. Yoon, W. R. Zame and M. van der Schaar, &quot;Estimating Missing Data in Temporal Data Streams Using Multi-Directional Recurrent Neural Networks,&quot; in IEEE Transactions on Biomedical Engineering, vol. 66, no. 5, pp. 1477-1490, May 2019, doi: 10.1109/TBME.2018.2874712. keywords: {Time measurement;Interpolation;Estimation;Medical diagnostic imaging;Correlation;Recurrent neural networks;Biomedical measurement;Missing data;temporal data streams;imputation;recurrent neural nets}</span>
 <span class="sd">                &quot;&quot;&quot;</span>
                 <span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-                    <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">sequence_length</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_defined</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                    <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">sequence_length</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_def</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
                 <span class="k">else</span><span class="p">:</span>
                     <span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">sequence_length</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;default&quot;</span><span class="p">,</span>
                                                                                                    <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;mrnn&quot;</span><span class="p">)</span>
 
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">mrnn</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="n">hidden_dim</span><span class="p">,</span>
-                                           <span class="n">learning_rate</span><span class="o">=</span><span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span>
-                                           <span class="n">sequence_length</span><span class="o">=</span><span class="n">sequence_length</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">mrnn</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">hidden_dim</span><span class="o">=</span><span class="n">hidden_dim</span><span class="p">,</span>
+                                       <span class="n">learning_rate</span><span class="o">=</span><span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span>
+                                       <span class="n">sequence_length</span><span class="o">=</span><span class="n">sequence_length</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -818,20 +818,20 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 
 <span class="sd">            Methods</span>
 <span class="sd">            -------</span>
-<span class="sd">            impute(self, user_defined=True, params=None):</span>
+<span class="sd">            impute(self, user_def=True, params=None):</span>
 <span class="sd">                Perform imputation using the STMVL algorithm.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
             <span class="n">algorithm</span> <span class="o">=</span> <span class="s2">&quot;stmvl&quot;</span>
 
 <div class="viewcode-block" id="Imputation.PatternSearch.STMVL.impute">
 <a class="viewcode-back" href="../../../imputegap.imputation.html#imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute">[docs]</a>
-            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_defined</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
+            <span class="k">def</span> <span class="nf">impute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">user_def</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
 <span class="w">                </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">                Perform imputation using the STMVL algorithm.</span>
 
 <span class="sd">                Parameters</span>
 <span class="sd">                ----------</span>
-<span class="sd">                user_defined : bool, optional</span>
+<span class="sd">                user_def : bool, optional</span>
 <span class="sd">                    Whether to use user-defined or default parameters (default is True).</span>
 <span class="sd">                params : dict, optional</span>
 <span class="sd">                    Parameters of the STMVL algorithm, if None, default ones are loaded.</span>
@@ -846,15 +846,15 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                Returns</span>
 <span class="sd">                -------</span>
 <span class="sd">                self : STMVL</span>
-<span class="sd">                    The object with `imputed_matrix` set.</span>
+<span class="sd">                    The object with `recov_data` set.</span>
 
 <span class="sd">                Example</span>
 <span class="sd">                -------</span>
-<span class="sd">                &gt;&gt;&gt; stmvl_imputer = Imputation.PatternSearch.STMVL(infected_matrix)</span>
+<span class="sd">                &gt;&gt;&gt; stmvl_imputer = Imputation.PatternSearch.STMVL(incomp_data)</span>
 <span class="sd">                &gt;&gt;&gt; stmvl_imputer.impute()  # default parameters for imputation &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; stmvl_imputer.impute(user_defined=True, params={&#39;window_size&#39;: 7, &#39;learning_rate&#39;:0.01, &#39;gamma&#39;:0.85, &#39;alpha&#39;: 7})  # user-defined  &gt; or</span>
-<span class="sd">                &gt;&gt;&gt; stmvl_imputer.impute(user_defined=False, params={&quot;ground_truth&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
-<span class="sd">                &gt;&gt;&gt; imputed_data = stmvl_imputer.imputed_matrix</span>
+<span class="sd">                &gt;&gt;&gt; stmvl_imputer.impute(user_def=True, params={&#39;window_size&#39;: 7, &#39;learning_rate&#39;:0.01, &#39;gamma&#39;:0.85, &#39;alpha&#39;: 7})  # user-defined  &gt; or</span>
+<span class="sd">                &gt;&gt;&gt; stmvl_imputer.impute(user_def=False, params={&quot;input_data&quot;: ts_1.data, &quot;optimizer&quot;: &quot;bayesian&quot;, &quot;options&quot;: {&quot;n_calls&quot;: 2}})  # auto-ml with bayesian</span>
+<span class="sd">                &gt;&gt;&gt; recov_data = stmvl_imputer.recov_data</span>
 
 <span class="sd">                References</span>
 <span class="sd">                ----------</span>
@@ -862,12 +862,12 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
 <span class="sd">                School of Information Science and Technology, Southwest Jiaotong University; Microsoft Research; Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences.</span>
 <span class="sd">                &quot;&quot;&quot;</span>
                 <span class="k">if</span> <span class="n">params</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
-                    <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_defined</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
+                    <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_check_params</span><span class="p">(</span><span class="n">user_def</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span>
                 <span class="k">else</span><span class="p">:</span>
                     <span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="p">,</span> <span class="n">alpha</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="n">query</span><span class="o">=</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;stmvl&quot;</span><span class="p">)</span>
 
-                <span class="bp">self</span><span class="o">.</span><span class="n">imputed_matrix</span> <span class="o">=</span> <span class="n">stmvl</span><span class="p">(</span><span class="n">contamination</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">infected_matrix</span><span class="p">,</span> <span class="n">window_size</span><span class="o">=</span><span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="n">gamma</span><span class="p">,</span>
-                                            <span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
+                <span class="bp">self</span><span class="o">.</span><span class="n">recov_data</span> <span class="o">=</span> <span class="n">stmvl</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">incomp_data</span><span class="p">,</span> <span class="n">window_size</span><span class="o">=</span><span class="n">window_size</span><span class="p">,</span> <span class="n">gamma</span><span class="o">=</span><span class="n">gamma</span><span class="p">,</span>
+                                        <span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> <span class="n">logs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">logs</span><span class="p">)</span>
 
                 <span class="k">return</span> <span class="bp">self</span></div>
 </div>
@@ -896,7 +896,7 @@ <h1>Source code for imputegap.recovery.imputation</h1><div class="highlight"><pr
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/recovery/manager.html b/docs/generation/build/html/modules/imputegap/recovery/manager.html
index 8c7da9a3..8c9ab1db 100644
--- a/docs/generation/build/html/modules/imputegap/recovery/manager.html
+++ b/docs/generation/build/html/modules/imputegap/recovery/manager.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.manager &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.manager &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -87,13 +87,15 @@
            <div itemprop="articleBody">
              
   <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
-<span></span><span class="kn">import</span> <span class="nn">os</span>
+<span></span><span class="kn">import</span> <span class="nn">datetime</span>
+<span class="kn">import</span> <span class="nn">os</span>
 <span class="kn">import</span> <span class="nn">time</span>
 <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
 <span class="kn">import</span> <span class="nn">matplotlib</span>
 <span class="kn">from</span> <span class="nn">scipy.stats</span> <span class="kn">import</span> <span class="n">zscore</span>
 <span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="kn">import</span> <span class="n">MinMaxScaler</span>
 <span class="kn">import</span> <span class="nn">importlib.resources</span>
+<span class="kn">from</span> <span class="nn">scipy.stats</span> <span class="kn">import</span> <span class="n">norm</span>
 
 <span class="kn">from</span> <span class="nn">imputegap.tools</span> <span class="kn">import</span> <span class="n">utils</span>
 
@@ -141,12 +143,11 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">    normalize(normalizer=&quot;z_score&quot;) :</span>
 <span class="sd">        Normalizes the time series dataset.</span>
 
-<span class="sd">    plot(raw_data, infected_data=None, imputed_data=None, title=&quot;Time Series Data&quot;,</span>
-<span class="sd">         max_series=None, max_values=None, size=(16, 8), save_path=&quot;&quot;, display=True) :</span>
+<span class="sd">    plot(input_data, incomp_data=None, recov_data=None, max_series=None, max_values=None, size=(16, 8), save_path=&quot;&quot;, display=True) :</span>
 <span class="sd">        Plots the time series data, including raw, contaminated, or imputed data.</span>
 
-<span class="sd">    Contaminate :</span>
-<span class="sd">        Class containing methods to contaminate time series data with missing values based on different scenarios.</span>
+<span class="sd">    Contamination :</span>
+<span class="sd">        Class containing methods to contaminate time series data with missing values based on different patterns.</span>
 
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -225,7 +226,8 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
                 <span class="n">saved_data</span> <span class="o">=</span> <span class="n">data</span>
 
                 <span class="c1">#  update path form inner library datasets</span>
-                <span class="k">if</span> <span class="n">data</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;bafu.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;chlorine.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;climate.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;drift.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;eeg-alcohol.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;eeg-reading.txt&quot;</span><span class="p">,</span>
+                <span class="k">if</span> <span class="n">data</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;bafu.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;chlorine.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;climate.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;drift.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;eeg-alcohol.txt&quot;</span><span class="p">,</span>
+                            <span class="s2">&quot;eeg-reading.txt&quot;</span><span class="p">,</span>
                             <span class="s2">&quot;meteo.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;test.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;test-large.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;fmri-objectviewing.txt&quot;</span><span class="p">,</span> <span class="s2">&quot;fmri-stoptask.txt&quot;</span><span class="p">]:</span>
                     <span class="n">data</span> <span class="o">=</span> <span class="n">importlib</span><span class="o">.</span><span class="n">resources</span><span class="o">.</span><span class="n">files</span><span class="p">(</span><span class="s1">&#39;imputegap.dataset&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">joinpath</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
 
@@ -252,46 +254,53 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="TimeSeries.print">
 <a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.print">[docs]</a>
-    <span class="k">def</span> <span class="nf">print</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">view_by_series</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">print</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_timestamps</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">limit_series</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> <span class="n">view_by_series</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Prints a limited number of time series from the dataset.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        limit : int, optional</span>
-<span class="sd">            The number of series to print. Default is 10.</span>
+<span class="sd">        limit_timestamps : int, optional</span>
+<span class="sd">        The number of timestamps to print. Default is 15. Use -1 for no restriction.</span>
+<span class="sd">        limit_series : int, optional</span>
+<span class="sd">        The number of series to print. Default is 10. Use -1 for no restriction.</span>
 <span class="sd">        view_by_series : bool, optional</span>
-<span class="sd">            Whether to view by series (True) or by values (False).</span>
+<span class="sd">        Whether to view by series (True) or by values (False).</span>
 
 <span class="sd">        Returns</span>
 <span class="sd">        -------</span>
 <span class="sd">        None</span>
 <span class="sd">        &quot;&quot;&quot;</span>
-
         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Time Series set :&quot;</span><span class="p">)</span>
 
         <span class="n">to_print</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">data</span>
         <span class="n">nbr_series</span><span class="p">,</span> <span class="n">nbr_values</span> <span class="o">=</span> <span class="n">to_print</span><span class="o">.</span><span class="n">shape</span>
-        <span class="n">print_col</span><span class="p">,</span> <span class="n">print_row</span> <span class="o">=</span> <span class="s2">&quot;Values&quot;</span><span class="p">,</span> <span class="s2">&quot;Series&quot;</span>
+        <span class="n">print_col</span><span class="p">,</span> <span class="n">print_row</span> <span class="o">=</span> <span class="s2">&quot;Timestamp&quot;</span><span class="p">,</span> <span class="s2">&quot;Series&quot;</span>
+
+        <span class="k">if</span> <span class="n">limit_timestamps</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">limit_timestamps</span> <span class="o">=</span> <span class="n">to_print</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">limit_series</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">limit_series</span> <span class="o">=</span> <span class="n">to_print</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="n">to_print</span> <span class="o">=</span> <span class="n">to_print</span><span class="p">[:</span><span class="n">limit_series</span><span class="p">,</span> <span class="p">:</span><span class="n">limit_timestamps</span><span class="p">]</span>
 
         <span class="k">if</span> <span class="ow">not</span> <span class="n">view_by_series</span><span class="p">:</span>
             <span class="n">to_print</span> <span class="o">=</span> <span class="n">to_print</span><span class="o">.</span><span class="n">T</span>
-            <span class="n">print_col</span><span class="p">,</span> <span class="n">print_row</span> <span class="o">=</span> <span class="s2">&quot;Series&quot;</span><span class="p">,</span> <span class="s2">&quot;Values&quot;</span>
-
-        <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="s1">&#39; &#39;</span><span class="si">:</span><span class="s2">19</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
-        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">to_print</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span>
-            <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_col</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">8</span><span class="p">)</span>
-            <span class="k">elif</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_col</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">7</span><span class="p">)</span>
-            <span class="k">else</span><span class="p">:</span>
-                <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_col</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot; &quot;</span> <span class="o">*</span> <span class="mi">6</span><span class="p">)</span>
+            <span class="n">print_col</span><span class="p">,</span> <span class="n">print_row</span> <span class="o">=</span> <span class="s2">&quot;Series&quot;</span><span class="p">,</span> <span class="s2">&quot;Timestamp&quot;</span>
+
+        <span class="n">header_format</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">{:&lt;15}</span><span class="s2">&quot;</span>  <span class="c1"># Fixed size for headers</span>
+        <span class="n">value_format</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">{:&gt;15.10f}</span><span class="s2">&quot;</span>  <span class="c1"># Fixed size for values</span>
+        <span class="c1"># Print the header</span>
+        <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="s1">&#39;&#39;</span><span class="si">:</span><span class="s2">&lt;18</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span>  <span class="c1"># Empty space for the row labels</span>
+        <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">to_print</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span>
+            <span class="nb">print</span><span class="p">(</span><span class="n">header_format</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_col</span><span class="si">}</span><span class="s2">_</span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
         <span class="nb">print</span><span class="p">()</span>
 
-        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">series</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">to_print</span><span class="p">[:</span><span class="n">limit</span><span class="p">]):</span>
-            <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_row</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2"> </span><span class="se">\t\t</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">elem</span><span class="si">:</span><span class="s2">15.10f</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">series</span><span class="p">]))</span>
+        <span class="c1"># Print each limited series with fixed size</span>
+        <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">series</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">to_print</span><span class="p">):</span>
+            <span class="nb">print</span><span class="p">(</span><span class="n">header_format</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">print_row</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">)</span>
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">value_format</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">elem</span><span class="p">)</span> <span class="k">for</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">series</span><span class="p">]))</span>
 
-        <span class="k">if</span> <span class="n">limit</span> <span class="o">&lt;</span> <span class="n">to_print</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
+        <span class="k">if</span> <span class="n">limit_series</span> <span class="o">&lt;</span> <span class="n">nbr_series</span><span class="p">:</span>
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;...&quot;</span><span class="p">)</span>
 
         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">shape of the time series :&quot;</span><span class="p">,</span> <span class="n">to_print</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">number of series =&quot;</span><span class="p">,</span> <span class="n">nbr_series</span><span class="p">,</span>
@@ -316,7 +325,7 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">        None</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">Results of the imputation &quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot; :&quot;</span><span class="p">)</span>
+        <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">Imputation Results of&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="s2">&quot;:&quot;</span><span class="p">)</span>
         <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">metrics</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
             <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">key</span><span class="si">:</span><span class="s2">&lt;20</span><span class="si">}</span><span class="s2"> = </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
         <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">)</span></div>
@@ -394,27 +403,27 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 
 <div class="viewcode-block" id="TimeSeries.plot">
 <a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.plot">[docs]</a>
-    <span class="k">def</span> <span class="nf">plot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">raw_data</span><span class="p">,</span> <span class="n">infected_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">imputed_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Time Series Data&quot;</span><span class="p">,</span> <span class="n">max_series</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
-             <span class="n">max_values</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">series_x</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span> <span class="n">save_path</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">plot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">recov_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_series</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">max_values</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">series_range</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
+             <span class="n">subplot</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mi">8</span><span class="p">),</span> <span class="n">save_path</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">display</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Plot the time series data, including raw, contaminated, or imputed data.</span>
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        raw_data : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The original time series data without contamination.</span>
-<span class="sd">        infected_data : numpy.ndarray, optional</span>
+<span class="sd">        incomp_data : numpy.ndarray, optional</span>
 <span class="sd">            The contaminated time series data.</span>
-<span class="sd">        imputed_data : numpy.ndarray, optional</span>
+<span class="sd">        recov_data : numpy.ndarray, optional</span>
 <span class="sd">            The imputed time series data.</span>
-<span class="sd">        title : str, optional</span>
-<span class="sd">            Title of the plot. Default is &quot;Time Series Data&quot;.</span>
 <span class="sd">        max_series : int, optional</span>
 <span class="sd">            The maximum number of series to plot.</span>
 <span class="sd">        max_values : int, optional</span>
 <span class="sd">            The maximum number of values per series to plot.</span>
-<span class="sd">        series_x : int, optional</span>
+<span class="sd">        series_range : int, optional</span>
 <span class="sd">            The index of a specific series to plot. If set, only this series will be plotted.</span>
+<span class="sd">        subplot : bool, optional</span>
+<span class="sd">            Print one time series by subplot or all in the same plot.</span>
 <span class="sd">        size : tuple, optional</span>
 <span class="sd">            Size of the plot in inches. Default is (16, 8).</span>
 <span class="sd">        save_path : str, optional</span>
@@ -428,121 +437,171 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">            The file path of the saved plot, if applicable.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
         <span class="n">number_of_series</span> <span class="o">=</span> <span class="mi">0</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="n">size</span><span class="p">)</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;#d3d3d3&#39;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">)</span>
 
-        <span class="k">if</span> <span class="n">max_series</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="n">max_series</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span>
-        <span class="k">if</span> <span class="n">max_values</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
-            <span class="n">_</span><span class="p">,</span> <span class="n">max_values</span> <span class="o">=</span> <span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span>
+        <span class="k">if</span> <span class="n">max_series</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">max_series</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">max_series</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+        <span class="k">if</span> <span class="n">max_values</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">max_values</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
+            <span class="n">max_values</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
+
+        <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+            <span class="n">series_indices</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">])</span><span class="o">.</span><span class="n">any</span><span class="p">()]</span>
+            <span class="n">nbr_series</span> <span class="o">=</span> <span class="p">[</span><span class="n">series_range</span><span class="p">]</span> <span class="k">if</span> <span class="n">series_range</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="nb">range</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">series_indices</span><span class="p">),</span> <span class="n">max_series</span><span class="p">))</span>
+            <span class="n">n_series_to_plot</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">nbr_series</span><span class="p">)</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">series_indices</span> <span class="o">=</span> <span class="p">[</span><span class="n">series_range</span><span class="p">]</span> <span class="k">if</span> <span class="n">series_range</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="nb">range</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">max_series</span><span class="p">))</span>
+            <span class="n">n_series_to_plot</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">series_indices</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+            <span class="n">n_cols</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="n">n_series_to_plot</span><span class="p">)</span>
+            <span class="n">n_rows</span> <span class="o">=</span> <span class="p">(</span><span class="n">n_series_to_plot</span> <span class="o">+</span> <span class="n">n_cols</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="n">n_cols</span>
 
-        <span class="k">if</span> <span class="n">raw_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
+            <span class="n">x_size</span><span class="p">,</span> <span class="n">y_size</span> <span class="o">=</span> <span class="n">size</span>
+            <span class="n">y_size</span> <span class="o">=</span> <span class="n">y_size</span> <span class="o">*</span> <span class="n">n_rows</span>
+            <span class="n">x_size</span> <span class="o">=</span> <span class="n">x_size</span> <span class="o">*</span> <span class="n">n_cols</span>
+
+            <span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="n">n_rows</span><span class="p">,</span> <span class="n">n_cols</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="n">x_size</span><span class="p">,</span> <span class="n">y_size</span><span class="p">),</span> <span class="n">squeeze</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
+            <span class="n">axes</span> <span class="o">=</span> <span class="n">axes</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="n">size</span><span class="p">)</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;#d3d3d3&#39;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">)</span>
 
+        <span class="k">if</span> <span class="n">input_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
             <span class="n">colors</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">load_parameters</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;colors&quot;</span><span class="p">)</span>
 
-            <span class="c1"># Determine range of series to plot</span>
-            <span class="n">series_indices</span> <span class="o">=</span> <span class="p">[</span><span class="n">series_x</span><span class="p">]</span> <span class="k">if</span> <span class="n">series_x</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="nb">range</span><span class="p">(</span><span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
+            <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">series_indices</span><span class="p">):</span>
 
-            <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">series_indices</span><span class="p">:</span>
-                <span class="n">color</span> <span class="o">=</span> <span class="n">colors</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">colors</span><span class="p">)]</span>
+                <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                    <span class="n">color</span> <span class="o">=</span> <span class="n">colors</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">color</span> <span class="o">=</span> <span class="n">colors</span><span class="p">[</span><span class="n">i</span> <span class="o">%</span> <span class="nb">len</span><span class="p">(</span><span class="n">colors</span><span class="p">)]</span>
 
-                <span class="k">if</span> <span class="n">infected_data</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">imputed_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot only raw matrix</span>
-                    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">raw_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span>
-                             <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                <span class="n">timestamps</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">input_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">))</span>
 
-                <span class="k">if</span> <span class="n">infected_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">imputed_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot infected matrix</span>
-                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">infected_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">raw_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
-                                 <span class="n">color</span><span class="o">=</span><span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-MB </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                <span class="c1"># Select the current axes if using subplots</span>
+                <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                    <span class="n">ax</span> <span class="o">=</span> <span class="n">axes</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">grid</span><span class="p">(</span><span class="kc">True</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s1">&#39;#d3d3d3&#39;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">0.6</span><span class="p">)</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span>
 
-                    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">infected_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">infected_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
-                             <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-RAW </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">incomp_data</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">recov_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot only raw matrix</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">timestamps</span><span class="p">,</span> <span class="n">input_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span>
+                            <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
 
-                <span class="k">if</span> <span class="n">imputed_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot imputed matrix</span>
-                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">infected_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">imputed_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">imputed_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
-                                 <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-IMP </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">incomp_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">recov_data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot infected matrix</span>
+                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">timestamps</span><span class="p">,</span> <span class="n">input_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
+                                <span class="n">color</span><span class="o">=</span><span class="s1">&#39;r&#39;</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-MB </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
 
-                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">infected_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
-                        <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">raw_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">raw_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
-                                 <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-MB </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">()</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">subplot</span><span class="p">:</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
+                            <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-RAW </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
 
-                    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">infected_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">infected_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
-                             <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-RAW </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+                <span class="k">if</span> <span class="n">recov_data</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>  <span class="c1"># plot imputed matrix</span>
+                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">():</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">recov_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">recov_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
+                                <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;r&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-IMP </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+
+                        <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">timestamps</span><span class="p">,</span> <span class="n">input_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
+                                <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;--&#39;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-MB </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+
+                    <span class="k">if</span> <span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:])</span><span class="o">.</span><span class="n">any</span><span class="p">()</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">subplot</span><span class="p">:</span>
+                        <span class="n">ax</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_values</span><span class="p">)),</span> <span class="n">incomp_data</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="p">:</span><span class="n">max_values</span><span class="p">],</span>
+                                <span class="n">color</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="sa">f</span><span class="s1">&#39;TS-RAW </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
+
+                <span class="c1"># Label and legend for subplot</span>
+                <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="s1">&#39;Timestamp&#39;</span><span class="p">)</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="s1">&#39;Values&#39;</span><span class="p">)</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">8</span><span class="p">)</span>
+                    <span class="n">ax</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;Time Series </span><span class="si">{</span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="si">}</span><span class="s1">&#39;</span><span class="p">)</span>
 
                 <span class="n">number_of_series</span> <span class="o">+=</span> <span class="mi">1</span>
                 <span class="k">if</span> <span class="n">number_of_series</span> <span class="o">==</span> <span class="n">max_series</span><span class="p">:</span>
                     <span class="k">break</span>
 
-        <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Timestamp&#39;</span><span class="p">)</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Values&#39;</span><span class="p">)</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span>
-        <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span>
-            <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span>
-            <span class="n">fontsize</span><span class="o">=</span><span class="mi">12</span><span class="p">,</span>
-            <span class="n">frameon</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-            <span class="n">fancybox</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-            <span class="n">shadow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
-            <span class="n">borderpad</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
-            <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mf">1.02</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>  <span class="c1"># Adjusted to keep the legend inside the window</span>
-        <span class="p">)</span>
+        <span class="k">if</span> <span class="n">subplot</span><span class="p">:</span>
+            <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">series_indices</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">axes</span><span class="p">)):</span>
+                <span class="n">axes</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s1">&#39;off&#39;</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="ow">not</span> <span class="n">subplot</span><span class="p">:</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Timestamp&#39;</span><span class="p">)</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Values&#39;</span><span class="p">)</span>
+            <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span>
+                <span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">,</span>
+                <span class="n">fontsize</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
+                <span class="n">frameon</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                <span class="n">fancybox</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                <span class="n">shadow</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
+                <span class="n">borderpad</span><span class="o">=</span><span class="mf">1.5</span><span class="p">,</span>
+                <span class="n">bbox_to_anchor</span><span class="o">=</span><span class="p">(</span><span class="mf">1.02</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>  <span class="c1"># Adjusted to keep the legend inside the window</span>
+            <span class="p">)</span>
 
         <span class="n">file_path</span> <span class="o">=</span> <span class="kc">None</span>
+
         <span class="k">if</span> <span class="n">save_path</span><span class="p">:</span>
             <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">save_path</span><span class="p">,</span> <span class="n">exist_ok</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
-            <span class="n">file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">title</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot; &quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot;_plot.jpg&quot;</span><span class="p">)</span>
+
+            <span class="n">now</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span>
+            <span class="n">current_time</span> <span class="o">=</span> <span class="n">now</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%y_%m_</span><span class="si">%d</span><span class="s2">_%H_%M_%S&quot;</span><span class="p">)</span>
+
+            <span class="n">file_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">save_path</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="n">current_time</span> <span class="o">+</span> <span class="s2">&quot;_plot.jpg&quot;</span><span class="p">)</span>
             <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">bbox_inches</span><span class="o">=</span><span class="s1">&#39;tight&#39;</span><span class="p">)</span>
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;plots saved in &quot;</span><span class="p">,</span> <span class="n">file_path</span><span class="p">)</span>
 
         <span class="k">if</span> <span class="n">display</span><span class="p">:</span>
             <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 
-        <span class="c1"># plt.close()</span>
-
         <span class="k">return</span> <span class="n">file_path</span></div>
 
 
-<div class="viewcode-block" id="TimeSeries.Contaminate">
-<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate">[docs]</a>
-    <span class="k">class</span> <span class="nc">Contaminate</span><span class="p">:</span>
+<div class="viewcode-block" id="TimeSeries.Contamination">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination">[docs]</a>
+    <span class="k">class</span> <span class="nc">Contamination</span><span class="p">:</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        Inner class to apply contamination scenarios to the time series data.</span>
+<span class="sd">        Inner class to apply contamination patterns to the time series data.</span>
 
 <span class="sd">        Methods</span>
 <span class="sd">        -------</span>
-<span class="sd">        mcar(ts, series_impacted=0.2, missing_rate=0.2, block_size=10, protection=0.1, use_seed=True, seed=42, explainer=False) :</span>
+<span class="sd">        mcar(ts, series_rate=0.2, missing_rate=0.2, block_size=10, offset=0.1, seed=True, explainer=False) :</span>
 <span class="sd">            Apply Missing Completely at Random (MCAR) contamination to the time series data.</span>
 
-<span class="sd">        missing_percentage(ts, series_impacted=0.2, missing_rate=0.2, protection=0.1) :</span>
+<span class="sd">        missing_percentage(ts, series_rate=0.2, missing_rate=0.2, offset=0.1) :</span>
 <span class="sd">            Apply missing percentage contamination to the time series data.</span>
 
-<span class="sd">        blackout(ts, missing_rate=0.2, protection=0.1) :</span>
+<span class="sd">        blackout(ts, missing_rate=0.2, offset=0.1) :</span>
 <span class="sd">            Apply blackout contamination to the time series data.</span>
+
+<span class="sd">        gaussian(input_data, series_rate=0.2, missing_rate=0.2, std_dev=0.2, offset=0.1, seed=True):</span>
+<span class="sd">            Apply Gaussian contamination to the time series data.</span>
+
+<span class="sd">        def disjoint(input_data, missing_rate=0.1, limit=1, offset=0.1):</span>
+<span class="sd">            Apply Disjoint contamination to the time series data.</span>
+
+<span class="sd">        def overlap(input_data, missing_rate=0.2, limit=1, shift=0.05, offset=0.1,):</span>
+<span class="sd">            Apply Overlapping contamination to the time series data.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-<div class="viewcode-block" id="TimeSeries.Contaminate.mcar">
-<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.mcar">[docs]</a>
-        <span class="k">def</span> <span class="nf">mcar</span><span class="p">(</span><span class="n">ts</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">use_seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="mi">42</span><span class="p">,</span>
-                 <span class="n">explainer</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
+<div class="viewcode-block" id="TimeSeries.Contamination.mcar">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.mcar">[docs]</a>
+        <span class="k">def</span> <span class="nf">mcar</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">explainer</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Apply Missing Completely at Random (MCAR) contamination to the time series data.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ts : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The time series dataset to contaminate.</span>
-<span class="sd">            series_impacted : float, optional</span>
+<span class="sd">            series_rate : float, optional</span>
 <span class="sd">                Percentage of series to contaminate (default is 0.2).</span>
 <span class="sd">            missing_rate : float, optional</span>
 <span class="sd">                Percentage of missing values per series (default is 0.2).</span>
 <span class="sd">            block_size : int, optional</span>
 <span class="sd">                Size of the block of missing data (default is 10).</span>
-<span class="sd">            protection : float, optional</span>
+<span class="sd">            offset : float, optional</span>
 <span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
-<span class="sd">            use_seed : bool, optional</span>
+<span class="sd">            seed : bool, optional</span>
 <span class="sd">                Whether to use a seed for reproducibility (default is True).</span>
-<span class="sd">            seed : int, optional</span>
-<span class="sd">                The value of the seed (default is 42).</span>
 <span class="sd">            explainer : bool, optional</span>
 <span class="sd">                Whether to apply MCAR to specific series for explanation purposes (default is False).</span>
 
@@ -552,37 +611,38 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">                The contaminated time series data.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
 
-            <span class="k">if</span> <span class="n">use_seed</span><span class="p">:</span>
-                <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="n">seed</span><span class="p">)</span>
+            <span class="k">if</span> <span class="n">seed</span><span class="p">:</span>
+                <span class="n">seed_value</span> <span class="o">=</span> <span class="mi">42</span>
+                <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="n">seed_value</span><span class="p">)</span>
 
-            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">ts</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
             <span class="n">M</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span>
 
             <span class="k">if</span> <span class="ow">not</span> <span class="n">explainer</span><span class="p">:</span>  <span class="c1"># use random series</span>
                 <span class="n">missing_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">missing_rate</span><span class="p">)</span>
-                <span class="n">series_impacted</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">series_impacted</span><span class="p">)</span>
-                <span class="n">protection</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">protection</span><span class="p">)</span>
+                <span class="n">series_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">series_rate</span><span class="p">)</span>
+                <span class="n">offset</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
 
-                <span class="n">nbr_series_impacted</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">series_impacted</span><span class="p">))</span>
+                <span class="n">nbr_series_impacted</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">series_rate</span><span class="p">))</span>
                 <span class="n">series_selected</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">M</span><span class="p">,</span> <span class="n">nbr_series_impacted</span><span class="p">,</span> <span class="n">replace</span><span class="o">=</span><span class="kc">False</span><span class="p">)]</span>
 
             <span class="k">else</span><span class="p">:</span>  <span class="c1"># use fix series</span>
-                <span class="n">series_selected</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">series_impacted</span><span class="p">)]</span>
+                <span class="n">series_selected</span> <span class="o">=</span> <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">series_rate</span><span class="p">)]</span>
 
             <span class="k">if</span> <span class="ow">not</span> <span class="n">explainer</span><span class="p">:</span>
                 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">MCAR contamination has been called with :&quot;</span>
-                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a number of series impacted &quot;</span><span class="p">,</span> <span class="n">series_impacted</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a number of series impacted &quot;</span><span class="p">,</span> <span class="n">series_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
                       <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a missing rate of &quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
-                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">protection</span><span class="p">,</span>
+                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span>
                       <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a block size of &quot;</span><span class="p">,</span> <span class="n">block_size</span><span class="p">,</span>
-                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">with a seed option set to &quot;</span><span class="p">,</span> <span class="n">use_seed</span><span class="p">,</span>
+                      <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">with a seed option set to &quot;</span><span class="p">,</span> <span class="n">seed</span><span class="p">,</span>
                       <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">shape of the set &quot;</span><span class="p">,</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span>
                       <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">this selection of series&quot;</span><span class="p">,</span> <span class="o">*</span><span class="n">series_selected</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
             <span class="k">for</span> <span class="n">series</span> <span class="ow">in</span> <span class="n">series_selected</span><span class="p">:</span>
                 <span class="n">S</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">series</span><span class="p">)</span>
                 <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>  <span class="c1"># number of values in the series</span>
-                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">protection</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
+                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
                 <span class="n">W</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">)</span> <span class="o">*</span> <span class="n">missing_rate</span><span class="p">)</span>  <span class="c1"># number of data to remove</span>
                 <span class="n">B</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">W</span> <span class="o">/</span> <span class="n">block_size</span><span class="p">)</span>  <span class="c1"># number of block to remove</span>
 
@@ -612,21 +672,21 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
             <span class="k">return</span> <span class="n">ts_contaminated</span></div>
 
 
-<div class="viewcode-block" id="TimeSeries.Contaminate.missing_percentage">
-<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.missing_percentage">[docs]</a>
-        <span class="k">def</span> <span class="nf">missing_percentage</span><span class="p">(</span><span class="n">ts</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
+<div class="viewcode-block" id="TimeSeries.Contamination.missing_percentage">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.missing_percentage">[docs]</a>
+        <span class="k">def</span> <span class="nf">missing_percentage</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Apply missing percentage contamination to the time series data.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ts : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The time series dataset to contaminate.</span>
-<span class="sd">            series_impacted : float, optional</span>
+<span class="sd">            series_rate : float, optional</span>
 <span class="sd">                Percentage of series to contaminate (default is 0.2).</span>
 <span class="sd">            missing_rate : float, optional</span>
 <span class="sd">                Percentage of missing values per series (default is 0.2).</span>
-<span class="sd">            protection : float, optional</span>
+<span class="sd">            offset : float, optional</span>
 <span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
 
 <span class="sd">            Returns</span>
@@ -635,26 +695,26 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">                The contaminated time series data.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
 
-            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">ts</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
             <span class="n">M</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span>
 
             <span class="n">missing_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">missing_rate</span><span class="p">)</span>
-            <span class="n">series_impacted</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">series_impacted</span><span class="p">)</span>
-            <span class="n">protection</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">protection</span><span class="p">)</span>
+            <span class="n">series_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">series_rate</span><span class="p">)</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
 
-            <span class="n">nbr_series_impacted</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">series_impacted</span><span class="p">))</span>
+            <span class="n">nbr_series_impacted</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">series_rate</span><span class="p">))</span>
 
             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">MISSING PERCENTAGE contamination has been called with :&quot;</span>
-                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a number of series impacted &quot;</span><span class="p">,</span> <span class="n">series_impacted</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a number of series impacted &quot;</span><span class="p">,</span> <span class="n">series_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
                   <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a missing rate of &quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
-                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">protection</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span>
                   <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">shape of the set &quot;</span><span class="p">,</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span>
                   <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">this selection of series 0 to &quot;</span><span class="p">,</span> <span class="n">nbr_series_impacted</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
 
             <span class="k">for</span> <span class="n">series</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nbr_series_impacted</span><span class="p">):</span>
                 <span class="n">S</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">series</span><span class="p">)</span>
                 <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>  <span class="c1"># number of values in the series</span>
-                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">protection</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
+                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
                 <span class="n">W</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">)</span> <span class="o">*</span> <span class="n">missing_rate</span><span class="p">)</span>  <span class="c1"># number of data to remove</span>
 
                 <span class="k">for</span> <span class="n">to_remove</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">W</span><span class="p">):</span>
@@ -664,19 +724,176 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
             <span class="k">return</span> <span class="n">ts_contaminated</span></div>
 
 
-<div class="viewcode-block" id="TimeSeries.Contaminate.blackout">
-<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contaminate.blackout">[docs]</a>
-        <span class="k">def</span> <span class="nf">blackout</span><span class="p">(</span><span class="n">ts</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
+<div class="viewcode-block" id="TimeSeries.Contamination.blackout">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.blackout">[docs]</a>
+        <span class="k">def</span> <span class="nf">blackout</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Apply blackout contamination to the time series data.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ts : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
+<span class="sd">                The time series dataset to contaminate.</span>
+<span class="sd">            missing_rate : float, optional</span>
+<span class="sd">                Percentage of missing values per series (default is 0.2).</span>
+<span class="sd">            offset : float, optional</span>
+<span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
+
+<span class="sd">            Returns</span>
+<span class="sd">            -------</span>
+<span class="sd">            numpy.ndarray</span>
+<span class="sd">                The contaminated time series data.</span>
+<span class="sd">            &quot;&quot;&quot;</span>
+            <span class="k">return</span> <span class="n">TimeSeries</span><span class="o">.</span><span class="n">Contamination</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">missing_rate</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">)</span></div>
+
+
+<div class="viewcode-block" id="TimeSeries.Contamination.gaussian">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.gaussian">[docs]</a>
+        <span class="k">def</span> <span class="nf">gaussian</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">series_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">std_dev</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">seed</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
+<span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">            Apply contamination with a Gaussian distribution to the time series data.</span>
+
+<span class="sd">            Parameters</span>
+<span class="sd">            ----------</span>
+<span class="sd">            input_data : numpy.ndarray</span>
+<span class="sd">                The time series dataset to contaminate.</span>
+<span class="sd">            series_rate : float, optional</span>
+<span class="sd">                Percentage of series to contaminate (default is 0.2).</span>
+<span class="sd">            missing_rate : float, optional</span>
+<span class="sd">                Percentage of missing values per series (default is 0.2).</span>
+<span class="sd">            std_dev : float, optional</span>
+<span class="sd">                Standard deviation of the Gaussian distribution for missing values (default is 0.2).</span>
+<span class="sd">            offset : float, optional</span>
+<span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
+<span class="sd">            seed : bool, optional</span>
+<span class="sd">                Whether to use a seed for reproducibility (default is True).</span>
+
+<span class="sd">            Returns</span>
+<span class="sd">            -------</span>
+<span class="sd">            numpy.ndarray</span>
+<span class="sd">                The contaminated time series data.</span>
+<span class="sd">            &quot;&quot;&quot;</span>
+
+            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+            <span class="n">M</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span>
+
+            <span class="k">if</span> <span class="n">seed</span><span class="p">:</span>
+                <span class="n">seed_value</span> <span class="o">=</span> <span class="mi">42</span>
+                <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="n">seed_value</span><span class="p">)</span>
+
+            <span class="c1"># Validation and limitation of input parameters</span>
+            <span class="n">missing_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">missing_rate</span><span class="p">)</span>
+            <span class="n">series_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">series_rate</span><span class="p">)</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+
+            <span class="n">nbr_series_impacted</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">M</span> <span class="o">*</span> <span class="n">series_rate</span><span class="p">))</span>
+
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">GAUSSIAN contamination has been called with :&quot;</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a number of series impacted &quot;</span><span class="p">,</span> <span class="n">series_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a missing rate of &quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">Gaussian std_dev &quot;</span><span class="p">,</span> <span class="n">std_dev</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">shape of the set &quot;</span><span class="p">,</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">this selection of series 0 to &quot;</span><span class="p">,</span> <span class="n">nbr_series_impacted</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="k">for</span> <span class="n">series</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">nbr_series_impacted</span><span class="p">):</span>
+                <span class="n">S</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">series</span><span class="p">)</span>
+                <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>  <span class="c1"># number of values in the series</span>
+                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
+                <span class="n">W</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">)</span> <span class="o">*</span> <span class="n">missing_rate</span><span class="p">)</span>  <span class="c1"># number of data points to remove</span>
+                <span class="n">R</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="n">P</span><span class="p">,</span> <span class="n">N</span><span class="p">)</span>
+
+                <span class="c1"># probability density function</span>
+                <span class="n">mean</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>
+                <span class="n">mean</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="nb">min</span><span class="p">(</span><span class="n">mean</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+
+                <span class="n">probabilities</span> <span class="o">=</span> <span class="n">norm</span><span class="o">.</span><span class="n">pdf</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="n">loc</span><span class="o">=</span><span class="n">P</span> <span class="o">+</span> <span class="n">mean</span> <span class="o">*</span> <span class="p">(</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">std_dev</span> <span class="o">*</span> <span class="p">(</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">))</span>
+
+                <span class="c1"># normalizes the probabilities so that their sum equals 1</span>
+                <span class="n">probabilities</span> <span class="o">/=</span> <span class="n">probabilities</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span>
+
+                <span class="c1"># select the values based on the probability</span>
+                <span class="n">missing_indices</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">R</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">W</span><span class="p">,</span> <span class="n">replace</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">p</span><span class="o">=</span><span class="n">probabilities</span><span class="p">)</span>
+
+                <span class="c1"># apply missing values</span>
+                <span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">,</span> <span class="n">missing_indices</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
+
+            <span class="k">return</span> <span class="n">ts_contaminated</span></div>
+
+
+<div class="viewcode-block" id="TimeSeries.Contamination.disjoint">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.disjoint">[docs]</a>
+        <span class="k">def</span> <span class="nf">disjoint</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
+<span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">            Apply disjoint contamination to the time series data.</span>
+
+<span class="sd">            Parameters</span>
+<span class="sd">            ----------</span>
+<span class="sd">            input_data : numpy.ndarray</span>
+<span class="sd">                The time series dataset to contaminate.</span>
+<span class="sd">            missing_rate : float, optional</span>
+<span class="sd">                Percentage of missing values per series (default is 0.1).</span>
+<span class="sd">            limit : float, optional</span>
+<span class="sd">                Percentage expressing the limit index of the end of the contamination (default is 1: all length).</span>
+<span class="sd">            offset : float, optional</span>
+<span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
+
+<span class="sd">            Returns</span>
+<span class="sd">            -------</span>
+<span class="sd">            numpy.ndarray</span>
+<span class="sd">                The contaminated time series data.</span>
+<span class="sd">            &quot;&quot;&quot;</span>
+            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+            <span class="n">M</span><span class="p">,</span> <span class="n">N</span> <span class="o">=</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span>
+
+            <span class="n">missing_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">missing_rate</span><span class="p">)</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">MISSING PERCENTAGE contamination has been called with :&quot;</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a missing rate of &quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">shape of the set &quot;</span><span class="p">,</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="n">S</span> <span class="o">=</span> <span class="mi">0</span>
+            <span class="n">X</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span> <span class="c1"># current index with offset</span>
+            <span class="n">final_limit</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span><span class="o">*</span><span class="n">limit</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span>
+
+            <span class="k">while</span> <span class="n">S</span> <span class="o">&lt;</span> <span class="n">M</span><span class="p">:</span>
+                <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>  <span class="c1"># number of values in the series</span>
+                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
+                <span class="n">W</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">)</span> <span class="o">*</span> <span class="n">missing_rate</span><span class="p">)</span>  <span class="c1"># number of data to remove</span>
+                <span class="n">L</span> <span class="o">=</span> <span class="n">X</span> <span class="o">+</span> <span class="n">W</span>  <span class="c1"># new limit</span>
+
+                <span class="k">for</span> <span class="n">to_remove</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">L</span><span class="p">):</span>
+                    <span class="n">index</span> <span class="o">=</span> <span class="n">P</span> <span class="o">+</span> <span class="n">to_remove</span>
+                    <span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">,</span> <span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
+
+                    <span class="k">if</span> <span class="n">index</span> <span class="o">&gt;=</span> <span class="n">final_limit</span><span class="p">:</span>  <span class="c1"># reach the limitation</span>
+                        <span class="k">return</span> <span class="n">ts_contaminated</span>
+
+                <span class="n">X</span> <span class="o">=</span> <span class="n">L</span> <span class="o">+</span> <span class="mi">1</span>
+                <span class="n">S</span> <span class="o">=</span> <span class="n">S</span> <span class="o">+</span> <span class="mi">1</span>
+
+            <span class="k">return</span> <span class="n">ts_contaminated</span></div>
+
+
+<div class="viewcode-block" id="TimeSeries.Contamination.overlap">
+<a class="viewcode-back" href="../../../imputegap.manager.html#imputegap.recovery.manager.TimeSeries.Contamination.overlap">[docs]</a>
+        <span class="k">def</span> <span class="nf">overlap</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">limit</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">shift</span><span class="o">=</span><span class="mf">0.05</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,):</span>
+<span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">            Apply overlap contamination to the time series data.</span>
+
+<span class="sd">            Parameters</span>
+<span class="sd">            ----------</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The time series dataset to contaminate.</span>
 <span class="sd">            missing_rate : float, optional</span>
 <span class="sd">                Percentage of missing values per series (default is 0.2).</span>
-<span class="sd">            protection : float, optional</span>
+<span class="sd">            limit : float, optional</span>
+<span class="sd">                Percentage expressing the limit index of the end of the contamination (default is 1: all length).</span>
+<span class="sd">            shift : float, optional</span>
+<span class="sd">                Percentage of shift inside each the last disjoint contamination.</span>
+<span class="sd">            offset : float, optional</span>
 <span class="sd">                Size of the uncontaminated section at the beginning of the series (default is 0.1).</span>
 
 <span class="sd">            Returns</span>
@@ -684,8 +901,41 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
 <span class="sd">            numpy.ndarray</span>
 <span class="sd">                The contaminated time series data.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
-            <span class="k">return</span> <span class="n">TimeSeries</span><span class="o">.</span><span class="n">Contaminate</span><span class="o">.</span><span class="n">missing_percentage</span><span class="p">(</span><span class="n">ts</span><span class="p">,</span> <span class="n">series_impacted</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">missing_rate</span><span class="o">=</span><span class="n">missing_rate</span><span class="p">,</span>
-                                                             <span class="n">protection</span><span class="o">=</span><span class="n">protection</span><span class="p">)</span></div>
+            <span class="n">ts_contaminated</span> <span class="o">=</span> <span class="n">input_data</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
+            <span class="n">M</span><span class="p">,</span> <span class="n">N</span> <span class="o">=</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span>
+
+            <span class="n">missing_rate</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">missing_rate</span><span class="p">)</span>
+            <span class="n">offset</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">verification_limitation</span><span class="p">(</span><span class="n">offset</span><span class="p">)</span>
+
+            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">MISSING PERCENTAGE contamination has been called with :&quot;</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a missing rate of &quot;</span><span class="p">,</span> <span class="n">missing_rate</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a starting position at &quot;</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">a shift overlap of &quot;</span><span class="p">,</span> <span class="n">shift</span> <span class="o">*</span> <span class="mi">100</span><span class="p">,</span> <span class="s2">&quot;%&quot;</span><span class="p">,</span>
+                  <span class="s2">&quot;</span><span class="se">\n\t</span><span class="s2">shape of the set &quot;</span><span class="p">,</span> <span class="n">ts_contaminated</span><span class="o">.</span><span class="n">shape</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n\n</span><span class="s2">&quot;</span><span class="p">)</span>
+
+            <span class="n">S</span> <span class="o">=</span> <span class="mi">0</span>
+            <span class="n">X</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># current index with offset</span>
+            <span class="n">X</span> <span class="o">=</span> <span class="n">X</span> <span class="o">+</span> <span class="nb">int</span><span class="p">(</span><span class="n">X</span> <span class="o">*</span> <span class="n">shift</span><span class="p">)</span>  <span class="c1"># counter first shift</span>
+            <span class="n">final_limit</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">limit</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
+
+            <span class="k">while</span> <span class="n">S</span> <span class="o">&lt;</span> <span class="n">M</span><span class="p">:</span>
+                <span class="n">N</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">])</span>  <span class="c1"># number of values in the series</span>
+                <span class="n">P</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">N</span> <span class="o">*</span> <span class="n">offset</span><span class="p">)</span>  <span class="c1"># values to protect in the beginning of the series</span>
+                <span class="n">W</span> <span class="o">=</span> <span class="nb">int</span><span class="p">((</span><span class="n">N</span> <span class="o">-</span> <span class="n">P</span><span class="p">)</span> <span class="o">*</span> <span class="n">missing_rate</span><span class="p">)</span>  <span class="c1"># number of data to remove</span>
+                <span class="n">X</span> <span class="o">=</span> <span class="n">X</span> <span class="o">-</span> <span class="nb">int</span><span class="p">(</span><span class="n">X</span> <span class="o">*</span> <span class="n">shift</span><span class="p">)</span>
+                <span class="n">L</span> <span class="o">=</span> <span class="n">X</span> <span class="o">+</span> <span class="n">W</span>  <span class="c1"># new limit</span>
+
+                <span class="k">for</span> <span class="n">to_remove</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">L</span><span class="p">):</span>
+                    <span class="n">index</span> <span class="o">=</span> <span class="n">P</span> <span class="o">+</span> <span class="n">to_remove</span>
+                    <span class="n">ts_contaminated</span><span class="p">[</span><span class="n">S</span><span class="p">,</span> <span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span>
+
+                    <span class="k">if</span> <span class="n">index</span> <span class="o">&gt;=</span> <span class="n">final_limit</span><span class="p">:</span>  <span class="c1"># reach the limitation</span>
+                        <span class="k">return</span> <span class="n">ts_contaminated</span>
+
+                <span class="n">X</span> <span class="o">=</span> <span class="n">L</span> <span class="o">+</span> <span class="mi">1</span>
+                <span class="n">S</span> <span class="o">=</span> <span class="n">S</span> <span class="o">+</span> <span class="mi">1</span>
+
+            <span class="k">return</span> <span class="n">ts_contaminated</span></div>
 </div>
 </div>
 
@@ -698,7 +948,7 @@ <h1>Source code for imputegap.recovery.manager</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/recovery/optimization.html b/docs/generation/build/html/modules/imputegap/recovery/optimization.html
index 2f2ed572..53c2ca16 100644
--- a/docs/generation/build/html/modules/imputegap/recovery/optimization.html
+++ b/docs/generation/build/html/modules/imputegap/recovery/optimization.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.recovery.optimization &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.recovery.optimization &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -119,7 +119,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">    _objective(**kwargs):</span>
 <span class="sd">        Abstract method to evaluate the imputation algorithm with the provided parameters. Must be implemented by subclasses.</span>
 
-<span class="sd">    optimize(ground_truth, contamination, selected_metrics, algorithm, **kwargs):</span>
+<span class="sd">    optimize(input_data, incomp_data, metrics, algorithm, **kwargs):</span>
 <span class="sd">        Abstract method for the main optimization process. Must be implemented by subclasses.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -141,13 +141,13 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">        ----------</span>
 <span class="sd">        **kwargs : dict</span>
 <span class="sd">            Parameters needed to evaluate the imputation algorithm, such as:</span>
-<span class="sd">            - ground_truth : numpy.ndarray</span>
+<span class="sd">            - input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
 <span class="sd">            - contamination : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
 <span class="sd">            - algorithm : str</span>
 <span class="sd">                The imputation algorithm name.</span>
-<span class="sd">            - selected_metrics : list of str</span>
+<span class="sd">            - metrics : list of str</span>
 <span class="sd">                List of selected metrics for optimization.</span>
 <span class="sd">            - params : dict or list</span>
 <span class="sd">                Parameter values for the optimization.</span>
@@ -161,7 +161,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
 <div class="viewcode-block" id="BaseOptimizer.optimize">
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.BaseOptimizer.optimize">[docs]</a>
-    <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
 <span class="w">        </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">        Abstract method for optimization. Must be implemented in subclasses.</span>
 
@@ -171,11 +171,11 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
 <span class="sd">        Parameters</span>
 <span class="sd">        ----------</span>
-<span class="sd">        ground_truth : numpy.ndarray</span>
+<span class="sd">        input_data : numpy.ndarray</span>
 <span class="sd">            The ground truth time series dataset.</span>
-<span class="sd">        contamination : numpy.ndarray</span>
+<span class="sd">        incomp_data : numpy.ndarray</span>
 <span class="sd">            The contaminated time series dataset to impute.</span>
-<span class="sd">        selected_metrics : list of str</span>
+<span class="sd">        metrics : list of str</span>
 <span class="sd">            List of selected metrics for optimization.</span>
 <span class="sd">        algorithm : str</span>
 <span class="sd">            The imputation algorithm to optimize.</span>
@@ -203,16 +203,16 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
 <span class="sd">    Methods</span>
 <span class="sd">    -------</span>
-<span class="sd">    Greedy.optimize(ground_truth, contamination, selected_metrics=[&quot;RMSE&quot;], algorithm=&quot;cdrec&quot;, n_calls=250):</span>
+<span class="sd">    Greedy.optimize(input_data, incomp_data, metrics=[&quot;RMSE&quot;], algorithm=&quot;cdrec&quot;, n_calls=250):</span>
 <span class="sd">        Perform greedy optimization for hyperparameters.</span>
 
-<span class="sd">    Bayesian.optimize(ground_truth, contamination, selected_metrics=[&quot;RMSE&quot;], algorithm=&quot;cdrec&quot;, n_calls=100, n_random_starts=50, acq_func=&#39;gp_hedge&#39;):</span>
+<span class="sd">    Bayesian.optimize(input_data, incomp_data, metrics=[&quot;RMSE&quot;], algorithm=&quot;cdrec&quot;, n_calls=100, n_random_starts=50, acq_func=&#39;gp_hedge&#39;):</span>
 <span class="sd">        Perform Bayesian optimization for hyperparameters.</span>
 
-<span class="sd">    ParticleSwarm.optimize(ground_truth, contamination, selected_metrics, algorithm, n_particles, c1, c2, w, iterations, n_processes):</span>
+<span class="sd">    ParticleSwarm.optimize(input_data, incomp_data, metrics, algorithm, n_particles, c1, c2, w, iterations, n_processes):</span>
 <span class="sd">        Perform Particle Swarm Optimization (PSO) for hyperparameters.</span>
 
-<span class="sd">    SuccessiveHalving.optimize(ground_truth, contamination, selected_metrics, algorithm, num_configs, num_iterations, reduction_factor):</span>
+<span class="sd">    SuccessiveHalving.optimize(input_data, incomp_data, metrics, algorithm, num_configs, num_iterations, reduction_factor):</span>
 <span class="sd">        Perform Successive Halving optimization for hyperparameters.</span>
 <span class="sd">    &quot;&quot;&quot;</span>
 
@@ -223,19 +223,19 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">        Greedy optimization strategy for hyperparameters.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Objective function for Greedy optimization.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
 <span class="sd">            algorithm : str</span>
 <span class="sd">                The imputation algorithm name.</span>
-<span class="sd">            selected_metrics : list of str</span>
+<span class="sd">            metrics : list of str</span>
 <span class="sd">                List of selected metrics for optimization.</span>
 <span class="sd">            params : dict</span>
 <span class="sd">                The parameters for the imputation algorithm.</span>
@@ -245,26 +245,26 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">            float</span>
 <span class="sd">                Mean error for the selected metrics.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
-            <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">)</span>
+            <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">params</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">)</span>
 
-            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selected_metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-                <span class="n">selected_metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">]</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+                <span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">metrics</span><span class="p">]</span>
 
-            <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">selected_metrics</span><span class="p">])</span>
+            <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">metrics</span><span class="p">])</span>
 
 <div class="viewcode-block" id="Optimization.Greedy.optimize">
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.Optimization.Greedy.optimize">[docs]</a>
-        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">],</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">n_calls</span><span class="o">=</span><span class="mi">250</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">metrics</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">],</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">n_calls</span><span class="o">=</span><span class="mi">250</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Perform greedy optimization for hyperparameters.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
-<span class="sd">            selected_metrics : list of str, optional</span>
+<span class="sd">            metrics : list of str, optional</span>
 <span class="sd">                List of selected metrics for optimization (default is [&quot;RMSE&quot;]).</span>
 <span class="sd">            algorithm : str, optional</span>
 <span class="sd">                The imputation algorithm to optimize (default is &#39;cdrec&#39;).</span>
@@ -303,7 +303,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
                 <span class="n">params_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">value</span> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">param_names</span><span class="p">,</span> <span class="n">params</span><span class="p">)}</span>
 
                 <span class="c1"># Calculate the score for the current set of parameters</span>
-                <span class="n">score</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">params_dict</span><span class="p">)</span>
+                <span class="n">score</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">params_dict</span><span class="p">)</span>
 
                 <span class="c1"># Update the best parameters if the current score is better</span>
                 <span class="k">if</span> <span class="n">score</span> <span class="o">&lt;</span> <span class="n">best_score</span><span class="p">:</span>
@@ -327,19 +327,19 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">        Bayesian optimization strategy for hyperparameters.</span>
 <span class="sd">        &quot;&quot;&quot;</span>
 
-        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Objective function for Bayesian optimization.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
 <span class="sd">            algorithm : str</span>
 <span class="sd">                The imputation algorithm name.</span>
-<span class="sd">            selected_metrics : list of str</span>
+<span class="sd">            metrics : list of str</span>
 <span class="sd">                List of selected metrics for optimization.</span>
 <span class="sd">            params : dict</span>
 <span class="sd">                Parameter values for the optimization.</span>
@@ -355,26 +355,26 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
             <span class="k">else</span><span class="p">:</span>
                 <span class="n">param_values</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">params</span><span class="p">)</span>
 
-            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selected_metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-                <span class="n">selected_metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">]</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+                <span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">metrics</span><span class="p">]</span>
 
-            <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">param_values</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">)</span>
-            <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">selected_metrics</span><span class="p">])</span>
+            <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">param_values</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">)</span>
+            <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">metrics</span><span class="p">])</span>
 
 <div class="viewcode-block" id="Optimization.Bayesian.optimize">
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.Optimization.Bayesian.optimize">[docs]</a>
-        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">],</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">n_calls</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
+        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">metrics</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;RMSE&quot;</span><span class="p">],</span> <span class="n">algorithm</span><span class="o">=</span><span class="s2">&quot;cdrec&quot;</span><span class="p">,</span> <span class="n">n_calls</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
                      <span class="n">n_random_starts</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">acq_func</span><span class="o">=</span><span class="s1">&#39;gp_hedge&#39;</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Perform Bayesian optimization for hyperparameters.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
-<span class="sd">            selected_metrics : list of str, optional</span>
+<span class="sd">            metrics : list of str, optional</span>
 <span class="sd">                List of selected metrics for optimization (default is [&quot;RMSE&quot;]).</span>
 <span class="sd">            algorithm : str, optional</span>
 <span class="sd">                The imputation algorithm to optimize (default is &#39;cdrec&#39;).</span>
@@ -394,9 +394,9 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
             <span class="n">search_spaces</span> <span class="o">=</span> <span class="n">SEARCH_SPACES</span>
 
-            <span class="c1"># Adjust the search space for &#39;cdrec&#39; based on obfuscated_matrix</span>
+            <span class="c1"># Adjust the search space for &#39;cdrec&#39; based on incomp_data</span>
             <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;cdrec&#39;</span><span class="p">:</span>
-                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">contamination</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
+                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
                 <span class="n">SEARCH_SPACES</span><span class="p">[</span><span class="s1">&#39;cdrec&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">Integer</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">min</span><span class="p">(</span><span class="mi">9</span><span class="p">,</span> <span class="n">max_rank</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;rank&#39;</span><span class="p">)</span>  <span class="c1"># Update the rank range</span>
 
             <span class="c1"># Define the search space</span>
@@ -406,7 +406,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
             <span class="n">optimizer</span> <span class="o">=</span> <span class="n">skopt</span><span class="o">.</span><span class="n">Optimizer</span><span class="p">(</span><span class="n">dimensions</span><span class="o">=</span><span class="n">space</span><span class="p">,</span> <span class="n">n_initial_points</span><span class="o">=</span><span class="n">n_random_starts</span><span class="p">,</span> <span class="n">acq_func</span><span class="o">=</span><span class="n">acq_func</span><span class="p">)</span>
             <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_calls</span><span class="p">):</span>
                 <span class="n">suggested_params</span> <span class="o">=</span> <span class="n">optimizer</span><span class="o">.</span><span class="n">ask</span><span class="p">()</span>
-                <span class="n">score</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">suggested_params</span><span class="p">)</span>
+                <span class="n">score</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">suggested_params</span><span class="p">)</span>
                 <span class="n">optimizer</span><span class="o">.</span><span class="n">tell</span><span class="p">(</span><span class="n">suggested_params</span><span class="p">,</span> <span class="n">score</span><span class="p">)</span>
 
             <span class="c1"># Optimal parameters</span>
@@ -454,19 +454,19 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
             <span class="k">return</span> <span class="n">particle_params</span>
 
-        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">params</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Objective function for Particle Swarm Optimization.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
 <span class="sd">            algorithm : str</span>
 <span class="sd">                The imputation algorithm name.</span>
-<span class="sd">            selected_metrics : list of str</span>
+<span class="sd">            metrics : list of str</span>
 <span class="sd">                List of selected metrics for optimization.</span>
 <span class="sd">            params : numpy.ndarray</span>
 <span class="sd">                Parameter values for the optimization.</span>
@@ -484,24 +484,24 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
             <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_particles</span><span class="p">):</span>  <span class="c1"># Iterate over each particle</span>
                 <span class="n">particle_params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_params</span><span class="p">(</span><span class="n">params</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">algorithm</span><span class="p">)</span>  <span class="c1"># Get the parameters for this particle</span>
-                <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">particle_params</span><span class="p">),</span> <span class="n">algorithm</span><span class="p">)</span>
-                <span class="n">errors_for_all_particles</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">selected_metrics</span><span class="p">])</span>
+                <span class="n">errors</span> <span class="o">=</span> <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">particle_params</span><span class="p">),</span> <span class="n">algorithm</span><span class="p">)</span>
+                <span class="n">errors_for_all_particles</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">([</span><span class="n">errors</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">metrics</span><span class="p">])</span>
             <span class="k">return</span> <span class="n">errors_for_all_particles</span>
 
 <div class="viewcode-block" id="Optimization.ParticleSwarm.optimize">
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize">[docs]</a>
-        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">n_particles</span><span class="p">,</span> <span class="n">c1</span><span class="p">,</span> <span class="n">c2</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span>
+        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">n_particles</span><span class="p">,</span> <span class="n">c1</span><span class="p">,</span> <span class="n">c2</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span>
                      <span class="n">n_processes</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Perform Particle Swarm Optimization for hyperparameters.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
-<span class="sd">            selected_metrics : list of str, optional</span>
+<span class="sd">            metrics : list of str, optional</span>
 <span class="sd">                List of selected metrics for optimization (default is [&quot;RMSE&quot;]).</span>
 <span class="sd">            algorithm : str, optional</span>
 <span class="sd">                The imputation algorithm to optimize (default is &#39;cdrec&#39;).</span>
@@ -525,14 +525,14 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">            &quot;&quot;&quot;</span>
             <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
-            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selected_metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-                <span class="n">selected_metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">]</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+                <span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">metrics</span><span class="p">]</span>
 
             <span class="c1"># Define the search space</span>
             <span class="n">search_space</span> <span class="o">=</span> <span class="n">SEARCH_SPACES_PSO</span>
 
             <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;cdrec&#39;</span><span class="p">:</span>
-                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">contamination</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
+                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
                 <span class="n">search_space</span><span class="p">[</span><span class="s1">&#39;cdrec&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">search_space</span><span class="p">[</span><span class="s1">&#39;cdrec&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="nb">min</span><span class="p">(</span><span class="n">search_space</span><span class="p">[</span><span class="s1">&#39;cdrec&#39;</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">],</span> <span class="n">max_rank</span><span class="p">))</span>
 
             <span class="c1"># Select the correct search space based on the algorithm</span>
@@ -547,7 +547,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
                                                 <span class="n">options</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;c1&#39;</span><span class="p">:</span> <span class="n">c1</span><span class="p">,</span> <span class="s1">&#39;c2&#39;</span><span class="p">:</span> <span class="n">c2</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">:</span> <span class="n">w</span><span class="p">},</span> <span class="n">bounds</span><span class="o">=</span><span class="n">bounds</span><span class="p">)</span>
 
             <span class="c1"># Perform optimization</span>
-            <span class="n">objective_with_args</span> <span class="o">=</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">)</span>
+            <span class="n">objective_with_args</span> <span class="o">=</span> <span class="n">partial</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">metrics</span><span class="p">)</span>
             <span class="n">cost</span><span class="p">,</span> <span class="n">pos</span> <span class="o">=</span> <span class="n">optimizer</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">objective_with_args</span><span class="p">,</span> <span class="n">iters</span><span class="o">=</span><span class="n">iterations</span><span class="p">,</span> <span class="n">n_processes</span><span class="o">=</span><span class="n">n_processes</span><span class="p">)</span>
 
             <span class="n">param_names</span> <span class="o">=</span> <span class="n">PARAM_NAMES</span>
@@ -567,7 +567,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.Optimization.SuccessiveHalving">[docs]</a>
     <span class="k">class</span> <span class="nc">SuccessiveHalving</span><span class="p">(</span><span class="n">BaseOptimizer</span><span class="p">):</span>
 
-        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">errors_dict</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">_objective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">errors_dict</span><span class="p">,</span> <span class="n">metrics</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Objective function for Successive Halving optimization.</span>
 
@@ -575,7 +575,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">            ----------</span>
 <span class="sd">            errors_dict : dict</span>
 <span class="sd">                Dictionary containing error metrics.</span>
-<span class="sd">            selected_metrics : list of str</span>
+<span class="sd">            metrics : list of str</span>
 <span class="sd">                List of selected metrics for optimization.</span>
 
 <span class="sd">            Returns</span>
@@ -583,23 +583,23 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">            float</span>
 <span class="sd">                Mean error for the selected metrics.</span>
 <span class="sd">            &quot;&quot;&quot;</span>
-            <span class="n">selected_errors</span> <span class="o">=</span> <span class="p">[</span><span class="n">errors_dict</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">selected_metrics</span><span class="p">]</span>
+            <span class="n">selected_errors</span> <span class="o">=</span> <span class="p">[</span><span class="n">errors_dict</span><span class="p">[</span><span class="n">metric</span><span class="p">]</span> <span class="k">for</span> <span class="n">metric</span> <span class="ow">in</span> <span class="n">metrics</span><span class="p">]</span>
             <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">selected_errors</span><span class="p">)</span>
 
 <div class="viewcode-block" id="Optimization.SuccessiveHalving.optimize">
 <a class="viewcode-back" href="../../../imputegap.optimization.html#imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize">[docs]</a>
-        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">selected_metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">num_configs</span><span class="p">,</span> <span class="n">num_iterations</span><span class="p">,</span>
+        <span class="k">def</span> <span class="nf">optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">metrics</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">,</span> <span class="n">num_configs</span><span class="p">,</span> <span class="n">num_iterations</span><span class="p">,</span>
                      <span class="n">reduction_factor</span><span class="p">):</span>
 <span class="w">            </span><span class="sd">&quot;&quot;&quot;</span>
 <span class="sd">            Perform Successive Halving optimization for hyperparameters.</span>
 
 <span class="sd">            Parameters</span>
 <span class="sd">            ----------</span>
-<span class="sd">            ground_truth : numpy.ndarray</span>
+<span class="sd">            input_data : numpy.ndarray</span>
 <span class="sd">                The ground truth time series dataset.</span>
-<span class="sd">            contamination : numpy.ndarray</span>
+<span class="sd">            incomp_data : numpy.ndarray</span>
 <span class="sd">                The contaminated time series dataset to impute.</span>
-<span class="sd">            selected_metrics : list of str, optional</span>
+<span class="sd">            metrics : list of str, optional</span>
 <span class="sd">                List of selected metrics for optimization (default is [&quot;RMSE&quot;]).</span>
 <span class="sd">            algorithm : str, optional</span>
 <span class="sd">                The imputation algorithm to optimize (default is &#39;cdrec&#39;).</span>
@@ -617,18 +617,18 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 <span class="sd">            &quot;&quot;&quot;</span>
             <span class="n">start_time</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>  <span class="c1"># Record start time</span>
 
-            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selected_metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
-                <span class="n">selected_metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">]</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
+                <span class="n">metrics</span> <span class="o">=</span> <span class="p">[</span><span class="n">metrics</span><span class="p">]</span>
 
             <span class="c1"># Define the parameter names for each algorithm</span>
             <span class="n">param_names</span> <span class="o">=</span> <span class="n">PARAM_NAMES</span>
 
-            <span class="n">data_length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">)</span>
+            <span class="n">data_length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">input_data</span><span class="p">)</span>
             <span class="n">chunk_size</span> <span class="o">=</span> <span class="n">data_length</span> <span class="o">//</span> <span class="n">num_iterations</span>
 
             <span class="c1"># prepare configurations for each algorithm separately</span>
             <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;cdrec&#39;</span><span class="p">:</span>
-                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">contamination</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
+                <span class="n">max_rank</span> <span class="o">=</span> <span class="n">incomp_data</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span>
                 <span class="n">temp_rank_range</span> <span class="o">=</span> <span class="p">[</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">sh_params</span><span class="o">.</span><span class="n">CDREC_RANK_RANGE</span> <span class="k">if</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">max_rank</span><span class="p">]</span>
 
                 <span class="k">if</span> <span class="ow">not</span> <span class="n">temp_rank_range</span><span class="p">:</span>
@@ -654,12 +654,12 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
             <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_iterations</span><span class="p">):</span>
                 <span class="c1"># Calculate how much data to use in this iteration</span>
                 <span class="n">end_idx</span> <span class="o">=</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">*</span> <span class="n">chunk_size</span>
-                <span class="n">partial_ground_truth</span> <span class="o">=</span> <span class="n">ground_truth</span><span class="p">[:</span><span class="n">end_idx</span><span class="p">]</span>
-                <span class="n">partial_obfuscated</span> <span class="o">=</span> <span class="n">contamination</span><span class="p">[:</span><span class="n">end_idx</span><span class="p">]</span>
+                <span class="n">partial_input_data</span> <span class="o">=</span> <span class="n">input_data</span><span class="p">[:</span><span class="n">end_idx</span><span class="p">]</span>
+                <span class="n">partial_obfuscated</span> <span class="o">=</span> <span class="n">incomp_data</span><span class="p">[:</span><span class="n">end_idx</span><span class="p">]</span>
 
                 <span class="n">scores</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span>
-                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">partial_ground_truth</span><span class="p">,</span> <span class="n">partial_obfuscated</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span>
-                    <span class="n">selected_metrics</span><span class="p">)</span> <span class="k">for</span> <span class="n">config</span> <span class="ow">in</span> <span class="n">configs</span><span class="p">]</span>
+                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">partial_input_data</span><span class="p">,</span> <span class="n">partial_obfuscated</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span>
+                    <span class="n">metrics</span><span class="p">)</span> <span class="k">for</span> <span class="n">config</span> <span class="ow">in</span> <span class="n">configs</span><span class="p">]</span>
 
                 <span class="n">top_configs_idx</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argsort</span><span class="p">(</span><span class="n">scores</span><span class="p">)[:</span><span class="nb">max</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">configs</span><span class="p">)</span> <span class="o">//</span> <span class="n">reduction_factor</span><span class="p">)]</span>
                 <span class="n">configs</span> <span class="o">=</span> <span class="p">[</span><span class="n">configs</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">top_configs_idx</span><span class="p">]</span>
@@ -671,14 +671,14 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
 
             <span class="k">if</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s1">&#39;iim&#39;</span><span class="p">:</span>
                 <span class="n">best_config</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">configs</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">single_config</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span>
-                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="p">[</span><span class="n">single_config</span><span class="p">],</span> <span class="n">algorithm</span><span class="p">),</span>
-                    <span class="n">selected_metrics</span><span class="p">))</span>
+                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="p">[</span><span class="n">single_config</span><span class="p">],</span> <span class="n">algorithm</span><span class="p">),</span>
+                    <span class="n">metrics</span><span class="p">))</span>
             <span class="k">else</span><span class="p">:</span>
                 <span class="n">best_config</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">configs</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">config</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span>
-                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span> <span class="n">selected_metrics</span><span class="p">))</span>
+                    <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span> <span class="n">metrics</span><span class="p">))</span>
 
             <span class="n">best_score</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_objective</span><span class="p">(</span>
-                <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">ground_truth</span><span class="p">,</span> <span class="n">contamination</span><span class="p">,</span> <span class="n">best_config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span> <span class="n">selected_metrics</span><span class="p">)</span>
+                <span class="n">Imputation</span><span class="o">.</span><span class="n">evaluate_params</span><span class="p">(</span><span class="n">input_data</span><span class="p">,</span> <span class="n">incomp_data</span><span class="p">,</span> <span class="n">best_config</span><span class="p">,</span> <span class="n">algorithm</span><span class="p">),</span> <span class="n">metrics</span><span class="p">)</span>
 
             <span class="c1"># Check the size of param_names[algorithm]</span>
             <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">param_names</span><span class="p">[</span><span class="n">algorithm</span><span class="p">])</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
@@ -704,7 +704,7 @@ <h1>Source code for imputegap.recovery.optimization</h1><div class="highlight"><
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/imputegap/tools/utils.html b/docs/generation/build/html/modules/imputegap/tools/utils.html
index 3b5efeef..c7236fea 100644
--- a/docs/generation/build/html/modules/imputegap/tools/utils.html
+++ b/docs/generation/build/html/modules/imputegap/tools/utils.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>imputegap.tools.utils &mdash; imputegap 1.0.2 documentation</title>
+  <title>imputegap.tools.utils &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../../../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../../../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../../../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../../../static/jquery.js?v=5d32c60e"></script>
       <script src="../../../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../../../static/documentation_options.js?v=292eb321"></script>
+      <script src="../../../static/documentation_options.js?v=baaebd52"></script>
       <script src="../../../static/doctools.js?v=9bcbadda"></script>
       <script src="../../../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../../../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -237,14 +237,14 @@ <h1>Source code for imputegap.tools.utils</h1><div class="highlight"><pre>
             <span class="k">return</span> <span class="p">(</span><span class="n">hidden_dim</span><span class="p">,</span> <span class="n">learning_rate</span><span class="p">,</span> <span class="n">iterations</span><span class="p">)</span>
     <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;greedy&quot;</span><span class="p">:</span>
         <span class="n">n_calls</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;greedy&#39;</span><span class="p">][</span><span class="s1">&#39;n_calls&#39;</span><span class="p">])</span>
-        <span class="n">selected_metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;greedy&#39;</span><span class="p">][</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">]</span>
-        <span class="k">return</span> <span class="p">(</span><span class="n">n_calls</span><span class="p">,</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">])</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;greedy&#39;</span><span class="p">][</span><span class="s1">&#39;metrics&#39;</span><span class="p">]</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">n_calls</span><span class="p">,</span> <span class="p">[</span><span class="n">metrics</span><span class="p">])</span>
     <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;bayesian&quot;</span><span class="p">:</span>
         <span class="n">n_calls</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;bayesian&#39;</span><span class="p">][</span><span class="s1">&#39;n_calls&#39;</span><span class="p">])</span>
         <span class="n">n_random_starts</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;bayesian&#39;</span><span class="p">][</span><span class="s1">&#39;n_random_starts&#39;</span><span class="p">])</span>
         <span class="n">acq_func</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;bayesian&#39;</span><span class="p">][</span><span class="s1">&#39;acq_func&#39;</span><span class="p">])</span>
-        <span class="n">selected_metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;bayesian&#39;</span><span class="p">][</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">]</span>
-        <span class="k">return</span> <span class="p">(</span><span class="n">n_calls</span><span class="p">,</span> <span class="n">n_random_starts</span><span class="p">,</span> <span class="n">acq_func</span><span class="p">,</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">])</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;bayesian&#39;</span><span class="p">][</span><span class="s1">&#39;metrics&#39;</span><span class="p">]</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">n_calls</span><span class="p">,</span> <span class="n">n_random_starts</span><span class="p">,</span> <span class="n">acq_func</span><span class="p">,</span> <span class="p">[</span><span class="n">metrics</span><span class="p">])</span>
     <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;pso&quot;</span><span class="p">:</span>
         <span class="n">n_particles</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;n_particles&#39;</span><span class="p">])</span>
         <span class="n">c1</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;c1&#39;</span><span class="p">])</span>
@@ -252,14 +252,14 @@ <h1>Source code for imputegap.tools.utils</h1><div class="highlight"><pre>
         <span class="n">w</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;w&#39;</span><span class="p">])</span>
         <span class="n">iterations</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;iterations&#39;</span><span class="p">])</span>
         <span class="n">n_processes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;n_processes&#39;</span><span class="p">])</span>
-        <span class="n">selected_metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">]</span>
-        <span class="k">return</span> <span class="p">(</span><span class="n">n_particles</span><span class="p">,</span> <span class="n">c1</span><span class="p">,</span> <span class="n">c2</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">n_processes</span><span class="p">,</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">])</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;pso&#39;</span><span class="p">][</span><span class="s1">&#39;metrics&#39;</span><span class="p">]</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">n_particles</span><span class="p">,</span> <span class="n">c1</span><span class="p">,</span> <span class="n">c2</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">iterations</span><span class="p">,</span> <span class="n">n_processes</span><span class="p">,</span> <span class="p">[</span><span class="n">metrics</span><span class="p">])</span>
     <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;sh&quot;</span><span class="p">:</span>
         <span class="n">num_configs</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;sh&#39;</span><span class="p">][</span><span class="s1">&#39;num_configs&#39;</span><span class="p">])</span>
         <span class="n">num_iterations</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;sh&#39;</span><span class="p">][</span><span class="s1">&#39;num_iterations&#39;</span><span class="p">])</span>
         <span class="n">reduction_factor</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">config</span><span class="p">[</span><span class="s1">&#39;sh&#39;</span><span class="p">][</span><span class="s1">&#39;reduction_factor&#39;</span><span class="p">])</span>
-        <span class="n">selected_metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;sh&#39;</span><span class="p">][</span><span class="s1">&#39;selected_metrics&#39;</span><span class="p">]</span>
-        <span class="k">return</span> <span class="p">(</span><span class="n">num_configs</span><span class="p">,</span> <span class="n">num_iterations</span><span class="p">,</span> <span class="n">reduction_factor</span><span class="p">,</span> <span class="p">[</span><span class="n">selected_metrics</span><span class="p">])</span>
+        <span class="n">metrics</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;sh&#39;</span><span class="p">][</span><span class="s1">&#39;metrics&#39;</span><span class="p">]</span>
+        <span class="k">return</span> <span class="p">(</span><span class="n">num_configs</span><span class="p">,</span> <span class="n">num_iterations</span><span class="p">,</span> <span class="n">reduction_factor</span><span class="p">,</span> <span class="p">[</span><span class="n">metrics</span><span class="p">])</span>
     <span class="k">elif</span> <span class="n">algorithm</span> <span class="o">==</span> <span class="s2">&quot;colors&quot;</span><span class="p">:</span>
         <span class="n">colors</span> <span class="o">=</span> <span class="n">config</span><span class="p">[</span><span class="s1">&#39;colors&#39;</span><span class="p">][</span><span class="s1">&#39;plot&#39;</span><span class="p">]</span>
         <span class="k">return</span> <span class="n">colors</span>
@@ -425,7 +425,7 @@ <h1>Source code for imputegap.tools.utils</h1><div class="highlight"><pre>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/modules/index.html b/docs/generation/build/html/modules/index.html
index 4cacd135..d31f81de 100644
--- a/docs/generation/build/html/modules/index.html
+++ b/docs/generation/build/html/modules/index.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Overview: module code &mdash; imputegap 1.0.2 documentation</title>
+  <title>Overview: module code &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="../static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="../static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="../static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="../static/jquery.js?v=5d32c60e"></script>
       <script src="../static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="../static/documentation_options.js?v=292eb321"></script>
+      <script src="../static/documentation_options.js?v=baaebd52"></script>
       <script src="../static/doctools.js?v=9bcbadda"></script>
       <script src="../static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="../static/js/theme.js"></script>
@@ -48,7 +48,7 @@
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -93,7 +93,7 @@ <h1>All modules for which code is available</h1>
 <li><a href="imputegap/algorithms/mrnn.html">imputegap.algorithms.mrnn</a></li>
 <li><a href="imputegap/algorithms/stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li><a href="imputegap/algorithms/zero_impute.html">imputegap.algorithms.zero_impute</a></li>
-<li><a href="imputegap/recovery/benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li><a href="imputegap/recovery/benchmark.html">imputegap.recovery.benchmark</a></li>
 <li><a href="imputegap/recovery/evaluation.html">imputegap.recovery.evaluation</a></li>
 <li><a href="imputegap/recovery/explainer.html">imputegap.recovery.explainer</a></li>
 <li><a href="imputegap/recovery/imputation.html">imputegap.recovery.imputation</a></li>
@@ -109,7 +109,7 @@ <h1>All modules for which code is available</h1>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/objects.inv b/docs/generation/build/html/objects.inv
index 12f27cad..f46ba2e5 100644
Binary files a/docs/generation/build/html/objects.inv and b/docs/generation/build/html/objects.inv differ
diff --git a/docs/generation/build/html/py-modindex.html b/docs/generation/build/html/py-modindex.html
index 4149b72d..21d1b867 100644
--- a/docs/generation/build/html/py-modindex.html
+++ b/docs/generation/build/html/py-modindex.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Python Module Index &mdash; imputegap 1.0.2 documentation</title>
+  <title>Python Module Index &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -14,7 +14,7 @@
     <link rel="shortcut icon" href="https://www.naterscreations.com/imputegap/favicon.png"/>
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -148,7 +148,7 @@ <h1>Python Module Index</h1>
      <tr class="cg-1">
        <td></td>
        <td>&#160;&#160;&#160;
-       <a href="imputegap.benchmarking.html#module-0"><code class="xref">imputegap.recovery.benchmarking</code></a></td><td>
+       <a href="imputegap.benchmark.html#module-0"><code class="xref">imputegap.recovery.benchmark</code></a></td><td>
        <em></em></td></tr>
      <tr class="cg-1">
        <td></td>
@@ -205,7 +205,7 @@ <h1>Python Module Index</h1>
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/search.html b/docs/generation/build/html/search.html
index 6eb050e5..3138b2e4 100644
--- a/docs/generation/build/html/search.html
+++ b/docs/generation/build/html/search.html
@@ -5,7 +5,7 @@
 <head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-  <title>Search &mdash; imputegap 1.0.2 documentation</title>
+  <title>Search &mdash; imputegap 1.0.3 documentation</title>
       <link rel="stylesheet" type="text/css" href="static/pygments.css?v=80d5e7a1" />
       <link rel="stylesheet" type="text/css" href="static/css/theme.css?v=e59714d7" />
       <link rel="stylesheet" type="text/css" href="static/custom.css" />
@@ -15,7 +15,7 @@
     
       <script src="static/jquery.js?v=5d32c60e"></script>
       <script src="static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
-      <script src="static/documentation_options.js?v=292eb321"></script>
+      <script src="static/documentation_options.js?v=baaebd52"></script>
       <script src="static/doctools.js?v=9bcbadda"></script>
       <script src="static/sphinx_highlight.js?v=dc90522c"></script>
     <script src="static/js/theme.js"></script>
@@ -51,7 +51,7 @@
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.optimization.html">imputegap.recovery.optimization</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.explainer.html">imputegap.recovery.explainer</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.evaluation.html">imputegap.recovery.evaluation</a></li>
-<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmarking.html">imputegap.recovery.benchmarking</a></li>
+<li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.recovery.benchmark.html">imputegap.recovery.benchmark</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.cdrec.html">imputegap.algorithms.cdrec</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.stmvl.html">imputegap.algorithms.stmvl</a></li>
 <li class="toctree-l1"><a class="reference internal" href="autosummary/imputegap.algorithms.iim.html">imputegap.algorithms.iim</a></li>
@@ -108,7 +108,7 @@
   <hr/>
 
   <div role="contentinfo">
-    <p>&#169; Copyright 2024, Quentin Nater.</p>
+    <p>&#169; Copyright 2025, Quentin Nater.</p>
   </div>
 
   Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
diff --git a/docs/generation/build/html/searchindex.js b/docs/generation/build/html/searchindex.js
index 72c06521..5220de82 100644
--- a/docs/generation/build/html/searchindex.js
+++ b/docs/generation/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"Module contents": [[18, "module-imputegap"], [24, "module-imputegap.recovery.explainer"], [26, "module-imputegap.recovery.imputation"], [27, "module-imputegap.recovery.manager"], [31, "module-imputegap.recovery.optimization"], [35, "module-imputegap.wrapper"]], "Modules": [[19, "module-imputegap.tools"], [20, "module-imputegap.algorithms"], [21, "module-imputegap.recovery.benchmarking"], [22, "module-imputegap.algorithms.cdrec"], [23, "module-imputegap.recovery.evaluation"], [25, "module-imputegap.algorithms.iim"], [28, "module-imputegap.algorithms.mean_impute"], [29, "module-imputegap.algorithms.min_impute"], [30, "module-imputegap.algorithms.mrnn"], [32, "module-imputegap.algorithms.stmvl"], [33, "module-imputegap.tools"], [34, "module-imputegap.tools"], [36, "module-imputegap.algorithms.zero_impute"]], "Subclasses": [[26, "subclasses"], [26, "id1"], [26, "id2"], [26, "id3"], [26, "id4"]], "Submodule Documentation": [[19, "submodule-documentation"], [20, "submodule-documentation"], [21, "submodule-documentation"], [23, "submodule-documentation"], [33, "submodule-documentation"], [34, "submodule-documentation"]], "Submodules": [[18, "submodules"], [19, "submodules"], [20, null], [21, "submodules"], [22, "submodules"], [23, "submodules"], [24, "submodules"], [25, "submodules"], [26, "submodules"], [27, "submodules"], [28, "submodules"], [29, "submodules"], [30, "submodules"], [31, "submodules"], [32, "submodules"], [33, "submodules"], [34, "submodules"], [35, "submodules"], [36, "submodules"]], "Subpackages": [[18, "subpackages"]], "imputegap": [[37, "imputegap"], [38, null]], "imputegap documentation": [[37, null]], "imputegap package": [[18, null]], "imputegap.algorithms": [[0, null]], "imputegap.algorithms.cdrec": [[1, null]], "imputegap.algorithms.cdrec package": [[22, null]], "imputegap.algorithms.iim": [[2, null]], "imputegap.algorithms.iim package": [[25, null]], "imputegap.algorithms.mean_impute": [[3, null]], "imputegap.algorithms.mean_impute package": [[28, null]], "imputegap.algorithms.min_impute": [[4, null]], "imputegap.algorithms.min_impute package": [[29, null]], "imputegap.algorithms.mrnn": [[5, null]], "imputegap.algorithms.mrnn package": [[30, null]], "imputegap.algorithms.stmvl": [[6, null]], "imputegap.algorithms.stmvl package": [[32, null]], "imputegap.algorithms.zero_impute": [[7, null]], "imputegap.algorithms.zero_impute package": [[36, null]], "imputegap.recovery.benchmarking": [[8, null]], "imputegap.recovery.benchmarking package": [[21, null]], "imputegap.recovery.evaluation": [[9, null]], "imputegap.recovery.evaluation module": [[21, "module-0"], [23, "module-0"]], "imputegap.recovery.evaluation package": [[23, null]], "imputegap.recovery.explainer": [[10, null]], "imputegap.recovery.explainer package": [[24, null]], "imputegap.recovery.imputation": [[11, null]], "imputegap.recovery.imputation package": [[26, null]], "imputegap.recovery.manager": [[12, null]], "imputegap.recovery.manager package": [[27, null]], "imputegap.recovery.optimization": [[13, null]], "imputegap.recovery.optimization package": [[31, null]], "imputegap.tools": [[14, null]], "imputegap.tools package": [[33, null]], "imputegap.tools.algorithm_parameters": [[15, null]], "imputegap.tools.algorithm_parameters package": [[19, null]], "imputegap.tools.utils": [[16, null]], "imputegap.tools.utils module": [[19, "module-imputegap.tools.algorithm_parameters"], [34, "module-imputegap.tools.utils"]], "imputegap.tools.utils package": [[34, null]], "imputegap.wrapper": [[17, null]], "imputegap.wrapper package": [[35, null]]}, "docnames": ["autosummary/imputegap.algorithms", "autosummary/imputegap.algorithms.cdrec", "autosummary/imputegap.algorithms.iim", "autosummary/imputegap.algorithms.mean_impute", "autosummary/imputegap.algorithms.min_impute", "autosummary/imputegap.algorithms.mrnn", "autosummary/imputegap.algorithms.stmvl", "autosummary/imputegap.algorithms.zero_impute", "autosummary/imputegap.recovery.benchmarking", "autosummary/imputegap.recovery.evaluation", "autosummary/imputegap.recovery.explainer", "autosummary/imputegap.recovery.imputation", "autosummary/imputegap.recovery.manager", "autosummary/imputegap.recovery.optimization", "autosummary/imputegap.tools", "autosummary/imputegap.tools.algorithm_parameters", "autosummary/imputegap.tools.utils", "autosummary/imputegap.wrapper", "imputegap", "imputegap.algorithm_parameters", "imputegap.algorithms", "imputegap.benchmarking", "imputegap.cdrec", "imputegap.evaluation", "imputegap.explainer", "imputegap.iim", "imputegap.imputation", "imputegap.manager", "imputegap.mean_impute", "imputegap.min_impute", "imputegap.mrnn", "imputegap.optimization", "imputegap.stmvl", "imputegap.tools", "imputegap.utils", "imputegap.wrapper", "imputegap.zero_impute", "index", "modules"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["autosummary/imputegap.algorithms.rst", "autosummary/imputegap.algorithms.cdrec.rst", "autosummary/imputegap.algorithms.iim.rst", "autosummary/imputegap.algorithms.mean_impute.rst", "autosummary/imputegap.algorithms.min_impute.rst", "autosummary/imputegap.algorithms.mrnn.rst", "autosummary/imputegap.algorithms.stmvl.rst", "autosummary/imputegap.algorithms.zero_impute.rst", "autosummary/imputegap.recovery.benchmarking.rst", "autosummary/imputegap.recovery.evaluation.rst", "autosummary/imputegap.recovery.explainer.rst", "autosummary/imputegap.recovery.imputation.rst", "autosummary/imputegap.recovery.manager.rst", "autosummary/imputegap.recovery.optimization.rst", "autosummary/imputegap.tools.rst", "autosummary/imputegap.tools.algorithm_parameters.rst", "autosummary/imputegap.tools.utils.rst", "autosummary/imputegap.wrapper.rst", "imputegap.rst", "imputegap.algorithm_parameters.rst", "imputegap.algorithms.rst", "imputegap.benchmarking.rst", "imputegap.cdrec.rst", "imputegap.evaluation.rst", "imputegap.explainer.rst", "imputegap.iim.rst", "imputegap.imputation.rst", "imputegap.manager.rst", "imputegap.mean_impute.rst", "imputegap.min_impute.rst", "imputegap.mrnn.rst", "imputegap.optimization.rst", "imputegap.stmvl.rst", "imputegap.tools.rst", "imputegap.utils.rst", "imputegap.wrapper.rst", "imputegap.zero_impute.rst", "index.rst", "modules.rst"], "indexentries": {"__init__() (imputegap.recovery.imputation.baseimputer method)": [[26, "imputegap.recovery.imputation.BaseImputer.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.__init__", false]], "algorithm (imputegap.recovery.imputation.baseimputer attribute)": [[26, "imputegap.recovery.imputation.BaseImputer.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.deeplearning.mrnn attribute)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec attribute)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.patternsearch.stmvl attribute)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.iim attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.meanimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.minimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.zeroimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.algorithm", false]], "avg_results() (imputegap.recovery.benchmarking.benchmarking method)": [[21, "id1", false], [21, "imputegap.recovery.benchmarking.Benchmarking.avg_results", false]], "baseimputer (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.BaseImputer", false]], "baseoptimizer (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.BaseOptimizer", false]], "benchmarking (class in imputegap.recovery.benchmarking)": [[21, "id0", false], [21, "imputegap.recovery.benchmarking.Benchmarking", false]], "blackout() (imputegap.recovery.manager.timeseries.contaminate method)": [[27, "imputegap.recovery.manager.TimeSeries.Contaminate.blackout", false]], "cdrec() (in module imputegap.algorithms.cdrec)": [[22, "imputegap.algorithms.cdrec.cdrec", false]], "comprehensive_evaluation() (imputegap.recovery.benchmarking.benchmarking method)": [[21, "id2", false], [21, "imputegap.recovery.benchmarking.Benchmarking.comprehensive_evaluation", false]], "compute_correlation() (imputegap.recovery.evaluation.evaluation method)": [[23, "id1", false], [23, "imputegap.recovery.evaluation.Evaluation.compute_correlation", false]], "compute_mae() (imputegap.recovery.evaluation.evaluation method)": [[23, "id2", false], [23, "imputegap.recovery.evaluation.Evaluation.compute_mae", false]], "compute_mi() (imputegap.recovery.evaluation.evaluation method)": [[23, "id3", false], [23, "imputegap.recovery.evaluation.Evaluation.compute_mi", false]], "compute_rmse() (imputegap.recovery.evaluation.evaluation method)": [[23, "id4", false], [23, "imputegap.recovery.evaluation.Evaluation.compute_rmse", false]], "convert_results() (imputegap.recovery.explainer.explainer method)": [[24, "id0", false], [24, "imputegap.recovery.explainer.Explainer.convert_results", false]], "display_title() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.display_title", false]], "evaluate_params() (imputegap.recovery.imputation.imputation method)": [[26, "imputegap.recovery.imputation.Imputation.evaluate_params", false]], "evaluation (class in imputegap.recovery.evaluation)": [[23, "id0", false], [23, "imputegap.recovery.evaluation.Evaluation", false]], "explainer (class in imputegap.recovery.explainer)": [[24, "imputegap.recovery.explainer.Explainer", false]], "extract_features() (imputegap.recovery.explainer.explainer method)": [[24, "id1", false], [24, "imputegap.recovery.explainer.Explainer.extract_features", false]], "generate_matrix() (imputegap.recovery.benchmarking.benchmarking method)": [[21, "id3", false], [21, "imputegap.recovery.benchmarking.Benchmarking.generate_matrix", false]], "generate_plots() (imputegap.recovery.benchmarking.benchmarking method)": [[21, "id4", false], [21, "imputegap.recovery.benchmarking.Benchmarking.generate_plots", false]], "generate_reports() (imputegap.recovery.benchmarking.benchmarking method)": [[21, "id5", false], [21, "imputegap.recovery.benchmarking.Benchmarking.generate_reports", false]], "iim() (in module imputegap.algorithms.iim)": [[25, "imputegap.algorithms.iim.iim", false]], "import_matrix() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.import_matrix", false]], "imputation (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation", false]], "imputation.deeplearning (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning", false]], "imputation.deeplearning.mrnn (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN", false]], "imputation.graphlearning (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.GraphLearning", false]], "imputation.matrixcompletion (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion", false]], "imputation.matrixcompletion.cdrec (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec", false]], "imputation.patternsearch (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch", false]], "imputation.patternsearch.stmvl (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL", false]], "imputation.statistics (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.Statistics", false]], "imputation.statistics.iim (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM", false]], "imputation.statistics.meanimpute (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute", false]], "imputation.statistics.minimpute (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute", false]], "imputation.statistics.zeroimpute (class in imputegap.recovery.imputation)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute", false]], "impute() (imputegap.recovery.imputation.baseimputer method)": [[26, "imputegap.recovery.imputation.BaseImputer.impute", false]], "impute() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute", false]], "impute() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute", false]], "impute() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.impute", false]], "imputegap": [[18, "module-imputegap", false]], "imputegap.algorithms": [[0, "module-imputegap.algorithms", false], [20, "module-imputegap.algorithms", false]], "imputegap.algorithms.cdrec": [[1, "module-imputegap.algorithms.cdrec", false], [22, "module-imputegap.algorithms.cdrec", false]], "imputegap.algorithms.iim": [[2, "module-imputegap.algorithms.iim", false], [25, "module-imputegap.algorithms.iim", false]], "imputegap.algorithms.mean_impute": [[3, "module-imputegap.algorithms.mean_impute", false], [28, "module-imputegap.algorithms.mean_impute", false]], "imputegap.algorithms.min_impute": [[4, "module-imputegap.algorithms.min_impute", false], [29, "module-imputegap.algorithms.min_impute", false]], "imputegap.algorithms.mrnn": [[5, "module-imputegap.algorithms.mrnn", false], [30, "module-imputegap.algorithms.mrnn", false]], "imputegap.algorithms.stmvl": [[6, "module-imputegap.algorithms.stmvl", false], [32, "module-imputegap.algorithms.stmvl", false]], "imputegap.algorithms.zero_impute": [[7, "module-imputegap.algorithms.zero_impute", false], [36, "module-imputegap.algorithms.zero_impute", false]], "imputegap.recovery.benchmarking": [[8, "module-imputegap.recovery.benchmarking", false], [21, "module-0", false], [21, "module-imputegap.recovery.benchmarking", false]], "imputegap.recovery.evaluation": [[9, "module-imputegap.recovery.evaluation", false], [23, "module-0", false], [23, "module-imputegap.recovery.evaluation", false]], "imputegap.recovery.explainer": [[10, "module-imputegap.recovery.explainer", false], [24, "module-imputegap.recovery.explainer", false]], "imputegap.recovery.imputation": [[11, "module-imputegap.recovery.imputation", false], [26, "module-imputegap.recovery.imputation", false]], "imputegap.recovery.manager": [[12, "module-imputegap.recovery.manager", false], [27, "module-imputegap.recovery.manager", false]], "imputegap.recovery.optimization": [[13, "module-imputegap.recovery.optimization", false], [31, "module-imputegap.recovery.optimization", false]], "imputegap.tools": [[14, "module-imputegap.tools", false], [19, "module-imputegap.tools", false], [33, "module-imputegap.tools", false], [34, "module-imputegap.tools", false]], "imputegap.tools.algorithm_parameters": [[15, "module-imputegap.tools.algorithm_parameters", false], [19, "module-imputegap.tools.algorithm_parameters", false]], "imputegap.tools.utils": [[16, "module-imputegap.tools.utils", false], [34, "module-imputegap.tools.utils", false]], "imputegap.wrapper": [[17, "module-imputegap.wrapper", false], [35, "module-imputegap.wrapper", false]], "launch_shap_model() (imputegap.recovery.explainer.explainer method)": [[24, "id2", false], [24, "imputegap.recovery.explainer.Explainer.launch_shap_model", false]], "load_configuration() (imputegap.recovery.explainer.explainer method)": [[24, "id3", false], [24, "imputegap.recovery.explainer.Explainer.load_configuration", false]], "load_parameters() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.load_parameters", false]], "load_share_lib() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.load_share_lib", false]], "load_timeseries() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.load_timeseries", false]], "logs (imputegap.recovery.imputation.baseimputer attribute)": [[26, "imputegap.recovery.imputation.BaseImputer.logs", false]], "logs (imputegap.recovery.imputation.imputation.deeplearning.mrnn attribute)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.logs", false]], "logs (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec attribute)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.logs", false]], "logs (imputegap.recovery.imputation.imputation.patternsearch.stmvl attribute)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.iim attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.meanimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.minimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.zeroimpute attribute)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.logs", false]], "mcar() (imputegap.recovery.manager.timeseries.contaminate method)": [[27, "imputegap.recovery.manager.TimeSeries.Contaminate.mcar", false]], "mean_impute() (in module imputegap.algorithms.mean_impute)": [[28, "imputegap.algorithms.mean_impute.mean_impute", false]], "metrics_computation() (imputegap.recovery.evaluation.evaluation method)": [[23, "id5", false], [23, "imputegap.recovery.evaluation.Evaluation.metrics_computation", false]], "min_impute() (in module imputegap.algorithms.min_impute)": [[29, "imputegap.algorithms.min_impute.min_impute", false]], "missing_percentage() (imputegap.recovery.manager.timeseries.contaminate method)": [[27, "imputegap.recovery.manager.TimeSeries.Contaminate.missing_percentage", false]], "module": [[0, "module-imputegap.algorithms", false], [1, "module-imputegap.algorithms.cdrec", false], [2, "module-imputegap.algorithms.iim", false], [3, "module-imputegap.algorithms.mean_impute", false], [4, "module-imputegap.algorithms.min_impute", false], [5, "module-imputegap.algorithms.mrnn", false], [6, "module-imputegap.algorithms.stmvl", false], [7, "module-imputegap.algorithms.zero_impute", false], [8, "module-imputegap.recovery.benchmarking", false], [9, "module-imputegap.recovery.evaluation", false], [10, "module-imputegap.recovery.explainer", false], [11, "module-imputegap.recovery.imputation", false], [12, "module-imputegap.recovery.manager", false], [13, "module-imputegap.recovery.optimization", false], [14, "module-imputegap.tools", false], [15, "module-imputegap.tools.algorithm_parameters", false], [16, "module-imputegap.tools.utils", false], [17, "module-imputegap.wrapper", false], [18, "module-imputegap", false], [19, "module-imputegap.tools", false], [19, "module-imputegap.tools.algorithm_parameters", false], [20, "module-imputegap.algorithms", false], [21, "module-0", false], [21, "module-imputegap.recovery.benchmarking", false], [22, "module-imputegap.algorithms.cdrec", false], [23, "module-0", false], [23, "module-imputegap.recovery.evaluation", false], [24, "module-imputegap.recovery.explainer", false], [25, "module-imputegap.algorithms.iim", false], [26, "module-imputegap.recovery.imputation", false], [27, "module-imputegap.recovery.manager", false], [28, "module-imputegap.algorithms.mean_impute", false], [29, "module-imputegap.algorithms.min_impute", false], [30, "module-imputegap.algorithms.mrnn", false], [31, "module-imputegap.recovery.optimization", false], [32, "module-imputegap.algorithms.stmvl", false], [33, "module-imputegap.tools", false], [34, "module-imputegap.tools", false], [34, "module-imputegap.tools.utils", false], [35, "module-imputegap.wrapper", false], [36, "module-imputegap.algorithms.zero_impute", false]], "mrnn() (in module imputegap.algorithms.mrnn)": [[30, "imputegap.algorithms.mrnn.mrnn", false]], "native_cdrec() (in module imputegap.algorithms.cdrec)": [[22, "imputegap.algorithms.cdrec.native_cdrec", false]], "native_stmvl() (in module imputegap.algorithms.stmvl)": [[32, "imputegap.algorithms.stmvl.native_stmvl", false]], "normalize() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.normalize", false]], "optimization (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.Optimization", false]], "optimization.bayesian (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.Optimization.Bayesian", false]], "optimization.greedy (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.Optimization.Greedy", false]], "optimization.particleswarm (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.Optimization.ParticleSwarm", false]], "optimization.successivehalving (class in imputegap.recovery.optimization)": [[31, "imputegap.recovery.optimization.Optimization.SuccessiveHalving", false]], "optimize() (imputegap.recovery.optimization.baseoptimizer method)": [[31, "imputegap.recovery.optimization.BaseOptimizer.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.bayesian method)": [[31, "imputegap.recovery.optimization.Optimization.Bayesian.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.greedy method)": [[31, "imputegap.recovery.optimization.Optimization.Greedy.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.particleswarm method)": [[31, "imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.successivehalving method)": [[31, "imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize", false]], "plot() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.plot", false]], "print() (imputegap.recovery.explainer.explainer method)": [[24, "id4", false], [24, "imputegap.recovery.explainer.Explainer.print", false]], "print() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.print", false]], "print_results() (imputegap.recovery.manager.timeseries method)": [[27, "imputegap.recovery.manager.TimeSeries.print_results", false]], "save_optimization() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.save_optimization", false]], "score() (imputegap.recovery.imputation.baseimputer method)": [[26, "imputegap.recovery.imputation.BaseImputer.score", false]], "score() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[26, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.score", false]], "score() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[26, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.score", false]], "score() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[26, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.IIM.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[26, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.score", false]], "search_path() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.search_path", false]], "shap_explainer() (imputegap.recovery.explainer.explainer method)": [[24, "imputegap.recovery.explainer.Explainer.shap_explainer", false]], "stmvl() (in module imputegap.algorithms.stmvl)": [[32, "imputegap.algorithms.stmvl.stmvl", false]], "timeseries (class in imputegap.recovery.manager)": [[27, "imputegap.recovery.manager.TimeSeries", false]], "timeseries.contaminate (class in imputegap.recovery.manager)": [[27, "imputegap.recovery.manager.TimeSeries.Contaminate", false]], "verification_limitation() (in module imputegap.tools.utils)": [[34, "imputegap.tools.utils.verification_limitation", false]], "zero_impute() (in module imputegap.algorithms.zero_impute)": [[36, "imputegap.algorithms.zero_impute.zero_impute", false]]}, "objects": {"": [[18, 0, 0, "-", "imputegap"]], "imputegap": [[20, 0, 0, "-", "algorithms"], [34, 0, 0, "-", "tools"], [35, 0, 0, "-", "wrapper"]], "imputegap.algorithms": [[22, 0, 0, "-", "cdrec"], [25, 0, 0, "-", "iim"], [28, 0, 0, "-", "mean_impute"], [29, 0, 0, "-", "min_impute"], [30, 0, 0, "-", "mrnn"], [32, 0, 0, "-", "stmvl"], [36, 0, 0, "-", "zero_impute"]], "imputegap.algorithms.cdrec": [[22, 1, 1, "", "cdrec"], [22, 1, 1, "", "native_cdrec"]], "imputegap.algorithms.iim": [[25, 1, 1, "", "iim"]], "imputegap.algorithms.mean_impute": [[28, 1, 1, "", "mean_impute"]], "imputegap.algorithms.min_impute": [[29, 1, 1, "", "min_impute"]], "imputegap.algorithms.mrnn": [[30, 1, 1, "", "mrnn"]], "imputegap.algorithms.stmvl": [[32, 1, 1, "", "native_stmvl"], [32, 1, 1, "", "stmvl"]], "imputegap.algorithms.zero_impute": [[36, 1, 1, "", "zero_impute"]], "imputegap.recovery": [[21, 0, 0, "module-0", "benchmarking"], [23, 0, 0, "module-0", "evaluation"], [24, 0, 0, "-", "explainer"], [26, 0, 0, "-", "imputation"], [27, 0, 0, "-", "manager"], [31, 0, 0, "-", "optimization"]], "imputegap.recovery.benchmarking": [[21, 2, 1, "id0", "Benchmarking"]], "imputegap.recovery.benchmarking.Benchmarking": [[21, 3, 1, "id1", "avg_results"], [21, 3, 1, "id2", "comprehensive_evaluation"], [21, 3, 1, "id3", "generate_matrix"], [21, 3, 1, "id4", "generate_plots"], [21, 3, 1, "id5", "generate_reports"]], "imputegap.recovery.evaluation": [[23, 2, 1, "id0", "Evaluation"]], "imputegap.recovery.evaluation.Evaluation": [[23, 3, 1, "id1", "compute_correlation"], [23, 3, 1, "id2", "compute_mae"], [23, 3, 1, "id3", "compute_mi"], [23, 3, 1, "id4", "compute_rmse"], [23, 3, 1, "id5", "metrics_computation"]], "imputegap.recovery.explainer": [[24, 2, 1, "", "Explainer"]], "imputegap.recovery.explainer.Explainer": [[24, 3, 1, "id0", "convert_results"], [24, 3, 1, "id1", "extract_features"], [24, 3, 1, "id2", "launch_shap_model"], [24, 3, 1, "id3", "load_configuration"], [24, 3, 1, "id4", "print"], [24, 3, 1, "", "shap_explainer"]], "imputegap.recovery.imputation": [[26, 2, 1, "", "BaseImputer"], [26, 2, 1, "", "Imputation"]], "imputegap.recovery.imputation.BaseImputer": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation": [[26, 2, 1, "", "DeepLearning"], [26, 2, 1, "", "GraphLearning"], [26, 2, 1, "", "MatrixCompletion"], [26, 2, 1, "", "PatternSearch"], [26, 2, 1, "", "Statistics"], [26, 3, 1, "", "evaluate_params"]], "imputegap.recovery.imputation.Imputation.DeepLearning": [[26, 2, 1, "", "MRNN"]], "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.MatrixCompletion": [[26, 2, 1, "", "CDRec"]], "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.PatternSearch": [[26, 2, 1, "", "STMVL"]], "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics": [[26, 2, 1, "", "IIM"], [26, 2, 1, "", "MeanImpute"], [26, 2, 1, "", "MinImpute"], [26, 2, 1, "", "ZeroImpute"]], "imputegap.recovery.imputation.Imputation.Statistics.IIM": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.MinImpute": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute": [[26, 3, 1, "", "__init__"], [26, 4, 1, "", "algorithm"], [26, 3, 1, "", "impute"], [26, 4, 1, "", "logs"], [26, 3, 1, "", "score"]], "imputegap.recovery.manager": [[27, 2, 1, "", "TimeSeries"]], "imputegap.recovery.manager.TimeSeries": [[27, 2, 1, "", "Contaminate"], [27, 3, 1, "", "import_matrix"], [27, 3, 1, "", "load_timeseries"], [27, 3, 1, "", "normalize"], [27, 3, 1, "", "plot"], [27, 3, 1, "", "print"], [27, 3, 1, "", "print_results"]], "imputegap.recovery.manager.TimeSeries.Contaminate": [[27, 3, 1, "", "blackout"], [27, 3, 1, "", "mcar"], [27, 3, 1, "", "missing_percentage"]], "imputegap.recovery.optimization": [[31, 2, 1, "", "BaseOptimizer"], [31, 2, 1, "", "Optimization"]], "imputegap.recovery.optimization.BaseOptimizer": [[31, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization": [[31, 2, 1, "", "Bayesian"], [31, 2, 1, "", "Greedy"], [31, 2, 1, "", "ParticleSwarm"], [31, 2, 1, "", "SuccessiveHalving"]], "imputegap.recovery.optimization.Optimization.Bayesian": [[31, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.Greedy": [[31, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.ParticleSwarm": [[31, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.SuccessiveHalving": [[31, 3, 1, "", "optimize"]], "imputegap.tools": [[19, 0, 0, "-", "algorithm_parameters"], [34, 0, 0, "-", "utils"]], "imputegap.tools.utils": [[34, 1, 1, "", "display_title"], [34, 1, 1, "", "load_parameters"], [34, 1, 1, "", "load_share_lib"], [34, 1, 1, "", "save_optimization"], [34, 1, 1, "", "search_path"], [34, 1, 1, "", "verification_limitation"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:attribute"}, "terms": {"": [21, 25, 26, 34], "0": [21, 22, 24, 26, 27, 30, 32, 34, 36], "000001": 22, "00023": [25, 26], "00040669209664367576": 21, "000461578369140625": 21, "00048422813415527344": 21, "0005095005035400391": 21, "0005536079406738281": 21, "0005743503570556641": 21, "0005755424499511719": 21, "0009615421295166016": 21, "001": 30, "0010058879852294922": 21, "0010309219360351562": 21, "001056671142578125": 21, "0014975078469404196": 21, "0019745826721191406": 21, "0020699501037597656": 21, "0022056102752685547": 21, "002231597900390625": 21, "003415822982788086": 21, "0035880775657246428": 21, "00482487678527832": 21, "006171770470542263": 21, "007096290588378906": 21, "0072672367095947266": 21, "007429599761962891": 21, "007513931343350665": 21, "00801849365234375": 21, "01": [26, 34], "010712060535523": 21, "01121013333181846": 21, "0112488396023014": 21, "011590260996247858": 21, "0125309431502871": 21, "013509125598802707": 21, "01421": [22, 26], "0143105930114702": 21, "0160968166750064": 21, "01713728904724121": 21, "0183962968474991": 21, "019": [22, 26], "020630168509677818": 21, "021165172206064526": 21, "02915935932568557": 21, "0317754516097355": 21, "037161060882302754": 21, "0379347892718205": 21, "04155403791391449": 21, "042899370193481445": 21, "043192148208618164": 21, "04321551322937012": 21, "04391813278198242": 21, "0441472017887297": 21, "04829454421997": 21, "05": 21, "0552448338389784": 21, "06361822797740405": 21, "064299483512458": 21, "06616526470761779": 21, "07010293006897": 21, "0807965786089415": 21, "08459032692102293": 21, "09218788146972656": 21, "09549617767333984": 21, "09925566629402761": 21, "1": [21, 22, 23, 24, 26, 27, 29, 32, 34, 36], "10": [22, 24, 25, 26, 27, 30], "100": [22, 26, 31, 34], "1000": 30, "1007": [22, 26], "10781252370591506": 21, "10793352127075": 21, "10881781578063965": 21, "10908095436833125": 21, "1109": [25, 26, 30], "11218049973594252": 21, "1129295825958252": 21, "1167751522591498": 21, "11876685901414151": 21, "11924522547609226": 21, "12567590499764303": 21, "13422239939628303": 21, "13619797235197734": 21, "1380846624733049": 21, "13894771223733138": 21, "14709529129218185": 21, "1477": [26, 30], "1490": [26, 30], "15": 24, "1516089897042538": 21, "151907444000244": 21, "16": 27, "160": [25, 26], "16953644212278182": 21, "17044353485107422": 21, "171": [25, 26], "17184901237487793": 21, "1728806495666504": 21, "17329692840576172": 21, "18152059329152104": 21, "186191167936035": 21, "1974": 21, "2": [21, 25, 26, 27, 28, 29, 32, 36], "2018": [26, 30], "2019": [25, 26, 30], "2020": [22, 26], "22056702659999994": 21, "2257": [22, 26], "2280": [22, 26], "23303624184873978": 21, "2366529609250008": 21, "2380077838897705": 21, "24340565131372927": 21, "250": 31, "255": 21, "2696133927362288": 21, "2730547993858495": 21, "2739817718416822": 21, "2753022759369617": 21, "2874712": [26, 30], "2939506418814281": 21, "2d": 21, "3": [26, 28], "31524085998535": 21, "32988968428439397": 21, "33": 21, "34494332493982044": 21, "346560495723809": 21, "35": 21, "35th": [25, 26], "37254427425455994": 21, "38695094864012947": 21, "39007056542870916": 21, "3968159514130716": 21, "4": [21, 24, 28, 29, 36], "40": 21, "4155649406397416": 21, "42": [24, 27], "42237901687622": 21, "42568325996399": 21, "4355197572001326": 21, "439927101135254": 21, "4445625930776235": 21, "479795694351196": 21, "49": 21, "4924048353228427": 21, "5": [26, 28, 30], "50": [21, 26, 31], "52": 21, "53373336791992": 21, "54": 21, "543020248413086": 21, "5434405584289141": 21, "5650541301828254": 21, "5862696375344495": 21, "5999574661254883": 21, "6": [21, 28, 29, 36], "6027573766269363": 21, "6064670085906982": 21, "6077785491943359": 21, "6101157665253": 21, "6166613101959229": 21, "62": [22, 26], "64": 30, "66": [26, 30], "66455388069153": 21, "6805167198181152": 21, "7": [22, 26, 30, 32], "7019459696903068": 21, "7219362152785619": 21, "7312998041323675": 21, "7326965517264863": 21, "7328867182584357": 21, "7380530834197998": 21, "7425412593844177": 21, "7426695186604741": 21, "7470128536224": 21, "7544523683503829": 21, "757440007226372": 21, "7599852461729673": 21, "7610548321723654": 21, "761136543268339": 21, "7641520748788702": 21, "7646823531588104": 21, "7672558930795506": 21, "7774057495176013": 21, "7826457023620605": 21, "7952869439926": 21, "8": [21, 27], "8134840739732964": 21, "814120507570725": 21, "8178796825899766": 21, "8280959876205578": 21, "8390532279447225": 21, "840": 21, "85": [26, 32], "8519431955571422": 21, "8785057067871094": 21, "88247036933899": 21, "8944975075266335": 21, "9004526656857551": 21, "9166777087122915": 21, "9180937736429735": 21, "919934494058292": 21, "9234927128429051": 21, "9249744935121553": 21, "9293322959355041": 21, "9378046989440918": 21, "9458508648057621": 21, "94813060760498": 21, "9531900627237018": 21, "9562773704528809": 21, "968435455112644": 21, "9699990038879407": 21, "9711348247027318": 21, "9829398352220718": 21, "9901338133811375": 21, "9914069853975623": 21, "A": [21, 23, 24, 25, 26, 27, 31, 34], "If": [21, 24, 26, 27, 28, 29, 34], "In": 37, "It": [27, 28, 29], "TO": 26, "The": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "__init__": [18, 26, 27], "__py_alpha": 32, "__py_epsilon": 22, "__py_gamma": 32, "__py_iter": 22, "__py_matrix": [22, 32], "__py_rank": 22, "__py_window": 32, "_check_param": 26, "_config_optim": 21, "_object": 31, "_optim": 26, "absolut": 23, "abstract": [26, 31], "academi": [26, 32], "accept": 34, "accur": 34, "acq_func": [26, 31], "acquisit": [26, 31], "across": 21, "action": 25, "ad": 26, "adapt": [25, 26], "addit": [31, 37], "adjust": 34, "advanc": [26, 32, 37], "after": [22, 26, 31, 32], "aggreg": [25, 26], "algo": [21, 24], "algo_cod": [25, 26], "algorithm": [18, 19, 20, 21, 23, 24, 26, 27, 31, 33, 34, 35, 37, 38], "all": [21, 24, 28, 29, 32, 36], "allow": [22, 27, 37], "alpha": [26, 32], "already_optim": 21, "also": 27, "amount": 23, "an": [26, 34], "analysi": [24, 25, 26, 37], "appli": [21, 24, 27], "applic": 27, "approach": 30, "ar": [24, 26, 27, 30], "arrai": [21, 27, 28, 29, 36], "aut": 34, "author": [32, 34, 36], "auto": 26, "automl": 37, "avail": 24, "averag": [21, 23], "avg_result": [18, 21], "b": 34, "bafu": 27, "base": [21, 22, 23, 24, 26, 27, 30, 31, 34], "baseimput": [18, 26], "baseoptim": [18, 31], "bayesian": [18, 21, 26, 31], "been": [21, 28, 29, 36], "begin": [24, 27], "behavior": 25, "being": 23, "benchmark": [18, 37, 38], "best": 31, "better": 32, "between": [23, 34, 37], "biomed": [26, 30], "blackout": 27, "block": [22, 24, 26, 27], "block_siz": [24, 27], "bool": [21, 22, 24, 25, 26, 27, 30, 34], "bound": 34, "b\u00f6hlen": [22, 26], "c": [22, 32], "c1": [26, 31], "c2": [26, 31], "calcul": 21, "call": [26, 31], "can": [27, 36], "catch24": 24, "categor": 21, "categori": 24, "cdll": 34, "cdrec": [18, 21, 24, 26, 31, 32, 34, 36, 37, 38], "cdrec_imput": 26, "centroid": [22, 26], "charact": 27, "check": [26, 34], "china": [25, 26], "chines": [26, 32], "chlorin": 34, "class": [8, 9, 10, 11, 12, 13, 21, 23, 24, 26, 27, 31], "classifi": 25, "climat": 37, "code": [25, 26], "coeffici": [23, 26, 31], "column": [21, 22], "come": 26, "common": [26, 31], "compar": 23, "complet": [21, 27], "complex": 36, "compon": 32, "comprehens": 21, "comprehensive_evalu": [18, 21], "comput": [23, 24, 25, 26, 27], "compute_correl": [18, 23], "compute_ma": [18, 23], "compute_mi": [18, 23], "compute_rms": [18, 23], "confer": [25, 26], "configur": [21, 24, 26, 31], "consid": 26, "construct": 37, "contain": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36], "contamin": [18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36], "contamination_matrix": [22, 25, 30, 32], "content": [37, 38], "convert": [24, 34], "convert_result": [18, 24], "correct": 34, "correl": [21, 22, 23, 26, 30], "correspond": 31, "creat": 21, "criterion": 22, "cross": [22, 26], "ctype": 34, "cudr\u00e9": [22, 26], "current": [24, 36], "custom": [22, 34], "data": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36], "dataset": [21, 23, 24, 26, 27, 28, 29, 31, 34, 36, 37], "decim": 34, "decomposit": [22, 26], "deep": 26, "deeplearn": [18, 26], "default": [21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36], "defin": 26, "depend": 25, "der": [26, 30], "descript": 24, "detail": [21, 24], "determin": 25, "deviat": 24, "diagnost": [26, 30], "dict": [21, 23, 24, 26, 27, 28, 29, 31, 34, 36], "dictionari": [21, 23, 24, 26, 27, 34], "differ": [22, 25, 27, 31, 35, 37], "dimens": 30, "direct": [26, 30], "directori": [21, 24], "displai": [21, 24, 27, 34], "display_titl": [18, 34], "divid": 34, "do_catch24": 24, "document": [18, 38], "doi": [22, 25, 26, 30], "domain": 37, "drift": 21, "dure": [26, 31], "e": [21, 24, 27, 31], "each": [21, 24, 26, 31], "effici": 27, "ei": 26, "empti": 34, "energi": 37, "engin": [25, 26, 30], "epsilon": [22, 26], "error": 23, "estim": [25, 26, 30], "etc": 31, "evalu": [18, 19, 20, 26, 31, 33, 34, 37, 38], "evaluate_param": [18, 26], "exampl": [21, 22, 25, 26, 28, 29, 30, 32, 36], "execut": [21, 22, 25, 27, 30, 32], "expect": 24, "explain": [18, 27, 37, 38], "explan": [24, 27], "extens": 36, "extern": 26, "extract": [24, 37], "extract_featur": [18, 24], "factor": [26, 31], "fals": [21, 24, 26, 27, 34], "featur": [24, 37], "features_categori": 24, "features_list": 24, "file": [21, 22, 24, 27, 34], "file_nam": [24, 34], "file_path": 24, "fill": [26, 28, 29, 32], "find": [28, 29, 31, 34], "flag": 24, "float": [21, 22, 23, 24, 26, 27, 30, 31, 32, 34], "follow": 36, "format": [21, 24, 26, 27, 34], "framework": [35, 37], "fribourg": 34, "from": [24, 26, 27, 28, 29, 34, 37], "function": [1, 2, 3, 4, 5, 6, 7, 16, 19, 20, 21, 23, 25, 26, 28, 29, 30, 31, 33, 34, 35], "futur": 36, "g": [21, 24, 27, 31], "gamma": [26, 32], "gaussian": [26, 31], "gener": [21, 24], "generate_matrix": [18, 21], "generate_plot": [18, 21], "generate_report": [18, 21], "geo": [26, 32], "give": 23, "given": [26, 31, 34], "global": [26, 31], "gp_hedg": [26, 31], "graph": [21, 26], "graphlearn": [18, 26], "greater": 22, "greedi": [18, 26, 31], "ground": [23, 26, 31], "ground_truth": [23, 26, 31], "group": 24, "h": [22, 26], "ha": [21, 27], "halv": [26, 31], "handl": [19, 20, 22, 23, 24, 25, 28, 29, 30, 32, 33, 34, 36], "have": [28, 29, 36], "hd": 21, "header": 27, "heatmap": 21, "hidden": [26, 30], "hidden_dim": [26, 30], "high": [22, 26, 34], "high_limit": 34, "higher": [23, 26], "how": 23, "http": [22, 26], "hyperparamet": [26, 31], "i": [21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37], "icd": [25, 26], "ieee": [25, 26, 30], "iim": [18, 21, 24, 26, 32, 36, 37, 38], "iim_imput": 26, "imag": [26, 30], "impact": 37, "implement": [26, 31, 32, 36], "import": 27, "import_matrix": [18, 27], "imput": [18, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38], "imputed_data": [22, 25, 26, 27, 30, 32], "imputed_matrix": [26, 28, 29, 32, 36], "imputegap": 20, "inch": 27, "includ": [21, 23, 27], "index": 27, "indic": 23, "individu": [25, 26], "inertia": [26, 31], "inf": [22, 26], "infect": 26, "infected_data": 27, "infected_matrix": 26, "inform": [21, 23, 26, 32, 34], "inherit": 26, "initi": [26, 27, 31, 36], "inner": 27, "input": [22, 24, 25, 28, 29, 30, 32, 36], "institut": [26, 32, 34], "int": [21, 22, 24, 25, 26, 27, 30, 31, 32], "integr": 37, "interact": 35, "interfac": [35, 37], "intern": [25, 26], "interpol": [26, 30], "invok": 32, "issu": 37, "iter": [22, 25, 26, 30, 31], "j": [25, 26, 32], "jiaotong": [26, 32], "k": 25, "kept": [26, 31], "keyword": [25, 26, 30], "khayati": [22, 26], "knn": 25, "knowl": [22, 26], "kwarg": 31, "label": 24, "larg": 23, "later": 34, "launch": 24, "launch_shap_model": [18, 24], "lcb": 26, "learn": [22, 25, 26, 30, 31], "learning_neighbor": 26, "learning_neighbour": 26, "learning_r": [26, 30], "length": [26, 30], "less": 22, "level": 21, "leverag": 32, "li": [26, 32], "lib": 34, "lib_cdrec": 34, "lib_path": 22, "librari": [21, 22, 34], "like": [32, 36], "limit": [24, 27, 34], "linear": 23, "list": [21, 24, 26, 27, 31], "load": [24, 26, 27, 34], "load_configur": [18, 24], "load_paramet": [18, 34], "load_share_lib": [18, 34], "load_timeseri": [18, 27], "local": [24, 27, 34], "log": [18, 22, 24, 25, 26, 27, 30, 32], "low": [22, 26, 34], "low_limit": 34, "lower": 34, "m": [21, 22, 26, 30], "macao": [25, 26], "machin": 30, "mae": [21, 23], "magnitud": 23, "mai": [25, 26, 30], "main": 31, "make": 23, "manag": [18, 24, 37, 38], "manipul": 27, "map": 24, "master": 34, "matrix": [21, 22, 25, 26, 27, 28, 29, 30, 32, 36], "matrixcomplet": [18, 26], "mauroux": [22, 26], "max_seri": 27, "max_valu": 27, "maximum": [22, 27], "mcar": [21, 24, 27], "mean": [21, 23, 24, 26, 28], "mean_featur": 24, "mean_imput": [18, 26, 37, 38], "meanimput": 26, "measur": [23, 26, 30], "medic": [26, 30], "medicin": 37, "method": [24, 25, 26, 27, 31, 36], "metric": [21, 23, 26, 27, 31, 32, 37], "metrics_comput": [18, 23], "mi": [21, 23], "microsoft": [26, 32], "min_imput": [18, 26, 37, 38], "min_max": 27, "minim": 26, "minimput": 26, "minimum": [26, 28, 29], "miss": [21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 36, 37], "missing_percentag": 27, "missing_r": [24, 27], "ml": 26, "model": [24, 25, 26, 30], "modul": [37, 38], "more": [23, 32, 36], "mrnn": [18, 21, 24, 26, 32, 36, 37, 38], "mrnn_imput": 26, "multi": [26, 30], "multipl": [21, 32, 36], "multivari": 30, "must": [22, 26, 31], "mutual": 23, "mvl": [26, 32], "n": 21, "n_call": [26, 31], "n_particl": [26, 31], "n_process": [26, 31], "n_random_start": [26, 31], "name": [21, 24, 27, 34], "nan": [22, 23, 25, 28, 29, 30, 32, 36], "narrow": 37, "nater": [32, 34, 36], "nativ": [22, 32], "native_cdrec": [18, 22], "native_stmvl": [18, 32], "ndarrai": [21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36], "nearest": [25, 26], "neg": 23, "neighbor": [25, 26], "net": [26, 30], "network": [26, 30], "neural": [26, 30], "neurosci": 37, "new": [26, 37], "newlin": 27, "non": [28, 29], "none": [21, 22, 24, 26, 27, 28, 29, 34, 36], "normal": [18, 27], "note": [21, 24, 25, 28, 29, 30, 32, 34, 36], "notimplementederror": 26, "np": [21, 28, 29, 36], "num_config": [26, 31], "num_iter": [26, 31], "number": [21, 22, 24, 25, 26, 27, 30, 31], "number_neighbor": 25, "numer": [25, 26], "numpi": [21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36], "object": [21, 23, 24, 26, 27, 31, 34], "offer": 37, "ones": 26, "onli": 27, "oper": [19, 20, 23, 33, 34], "optim": [18, 21, 26, 34, 37, 38], "optimal_param": 34, "option": [21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36], "org": [22, 26], "organ": 21, "origin": [24, 26, 27, 34], "other": [19, 20, 23, 33, 34], "outlier": 23, "output": [21, 24, 25], "outsid": 34, "over": [21, 26], "p": [22, 26], "packag": [20, 37, 38], "param": [24, 26, 28, 29, 36], "paramet": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36], "parameter": 37, "particl": [26, 31], "particleswarm": [18, 31], "pass": 36, "path": [22, 24, 27, 34], "pattern": [23, 26, 37], "patternsearch": [18, 26], "pearson": 23, "per": [24, 27], "percentag": [24, 27, 34], "perfect": 23, "perform": [21, 22, 23, 25, 26, 30, 31, 32], "person": [26, 31], "pi": 26, "pipelin": 21, "plot": [18, 21, 24, 27], "point": [26, 28, 29, 31], "posit": [23, 24], "potenti": [34, 37], "power": [26, 32], "pp": [25, 26, 30], "predefin": 27, "predict": [25, 26], "preserv": 23, "print": [18, 22, 24, 25, 27, 28, 29, 30, 32, 34, 36], "print_result": [18, 27], "prior": [26, 31], "process": [19, 20, 23, 24, 26, 27, 30, 31, 33, 34], "project": 34, "protect": [24, 27], "provid": [19, 20, 21, 23, 25, 26, 27, 31, 33, 34, 35, 37], "pso": [26, 31], "purpos": 27, "pycatch22": 24, "qualiti": 21, "quentin": [32, 34, 36], "queri": 34, "r": [26, 30], "rais": [26, 34], "random": [24, 26, 27, 31], "rang": [34, 37], "rank": [22, 26], "rate": [21, 22, 26, 30], "ratio": 24, "raw": [24, 27], "raw_data": [24, 27], "raw_matrix": 26, "recomput": 34, "recov": [22, 25, 30, 32], "recoveri": [18, 22, 37, 38], "recurr": [26, 30], "reduct": [26, 31], "reduction_factor": [26, 31], "refer": [22, 25, 26, 30, 32], "refin": 24, "regress": [24, 25, 26], "relationship": [23, 32], "remov": 24, "replac": [26, 28, 29, 36], "report": 21, "repres": [22, 25, 28, 29, 30, 36], "reproduc": [24, 27], "research": [26, 32], "result": [21, 24, 27, 34], "return": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36], "rmse": [21, 23, 24, 26, 31], "robust": 23, "root": 23, "row": 21, "run": [21, 26], "runs_plots_scor": 21, "s10115": [22, 26], "save": [21, 24, 27, 34], "save_dir": 21, "save_optim": [18, 34], "save_path": 27, "scalabl": [22, 26], "scenario": [21, 24, 27], "schaar": [26, 30], "school": [26, 32], "scienc": [26, 32], "score": [18, 21, 23, 26, 31], "scores_list": 21, "search_path": [18, 34], "section": [24, 27], "seed": [24, 27], "select": [21, 24, 26, 31], "selected_metr": [26, 31], "self": 26, "sensori": [26, 32], "separ": 27, "sequenc": [26, 30], "sequence_length": [26, 30], "seri": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36], "series_impact": 27, "series_x": 27, "set": [21, 23, 24, 25, 26, 27, 30], "set_nam": 34, "sh": 26, "shap": [24, 37], "shap_detail": 24, "shap_explain": [18, 24], "shap_valu": 24, "shape": 27, "share": [22, 23, 34], "shenzhen": [26, 32], "should": [26, 37], "simpl": [28, 29, 36], "size": [24, 26, 27, 32], "skip": 21, "smaller": [22, 26], "smooth": [26, 32], "song": [25, 26], "soon": 26, "sourc": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36], "southwest": [26, 32], "space": 27, "spatial": [26, 32], "spatio": 26, "specif": [25, 26, 27, 31], "specifi": 24, "split": 24, "splitter": 24, "squar": 23, "st": [21, 26, 32], "standard": 24, "static": 26, "statist": [18, 26], "stmvl": [18, 21, 24, 26, 37, 38], "stmvl_imput": 26, "stop": 22, "str": [21, 22, 24, 25, 26, 27, 31, 34], "straightforward": 37, "strategi": [31, 36], "stream": [26, 30], "string": 34, "structur": [30, 31], "subclass": 31, "submodul": [37, 38], "subpackag": [37, 38], "success": [26, 31], "successivehalv": [18, 31], "summar": 21, "summari": 21, "sun": [25, 26], "support": [22, 27, 32, 36, 37], "swarm": 31, "syst": [22, 26], "system": 34, "t": [24, 26, 27, 32], "tabular": 21, "task": 26, "tbme": [26, 30], "techniqu": [27, 28, 29, 32, 36, 37], "technologi": [26, 32], "templat": 26, "tempor": [26, 30, 32], "term": 23, "test": [21, 24, 34], "text": 21, "than": [22, 23, 26], "them": [21, 26], "thesi": 34, "thi": [25, 26, 27, 28, 29, 30, 31, 32, 36], "threshold": 22, "through": 21, "time": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36], "timeseri": [18, 27], "titl": [27, 34], "tmp": 24, "to_sav": 24, "toml": [24, 34], "tool": [18, 20, 21, 23, 35, 37, 38], "total": [25, 30], "train": [24, 26, 30], "transact": [26, 30], "tree": [25, 26], "true": [21, 22, 24, 25, 26, 27, 30, 32, 34], "truncat": 22, "truncation_rank": 22, "truth": [23, 26, 31], "try": [26, 31], "ts_1": 26, "tupl": [24, 26, 27, 31, 34], "two": 24, "txt": [21, 27], "type": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36], "uncontamin": [24, 27], "underli": 23, "unifi": 37, "uniqu": 26, "unit": 26, "univers": [26, 32, 34], "upper": 34, "us": [22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37], "use_se": [24, 27], "user": [26, 34], "user_defin": 26, "util": [18, 20, 21, 23, 25, 33, 37, 38], "v": 21, "valid": [24, 26], "valu": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 36, 37], "valueerror": 34, "van": [26, 30], "variabl": 24, "variat": 26, "variou": [19, 20, 21, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37], "verbos": 24, "verifi": 34, "verification_limit": [18, 34], "version": 25, "view": [21, 27], "view_by_seri": 27, "visual": [21, 27], "vol": [26, 30], "w": [26, 30, 31], "waist": 37, "wang": [25, 26], "warn": 34, "weight": [23, 26, 31, 32], "well": 23, "where": [27, 28, 29, 30, 36], "whether": [22, 24, 25, 26, 27, 30], "which": [24, 26], "window": [26, 32], "window_s": [26, 32], "within": [30, 34], "without": [26, 27, 34], "work": 25, "x": [26, 32], "x_axi": 21, "x_dataset": 24, "x_inform": 24, "y": [25, 26, 32], "y_dataset": 24, "yi": [26, 32], "yoon": [26, 30], "you": 27, "z_score": 27, "zame": [26, 30], "zero": [26, 36], "zero_imput": [18, 26, 37, 38], "zeroimput": 26, "zhang": [25, 26, 32], "zheng": [26, 32]}, "titles": ["imputegap.algorithms", "imputegap.algorithms.cdrec", "imputegap.algorithms.iim", "imputegap.algorithms.mean_impute", "imputegap.algorithms.min_impute", "imputegap.algorithms.mrnn", "imputegap.algorithms.stmvl", "imputegap.algorithms.zero_impute", "imputegap.recovery.benchmarking", "imputegap.recovery.evaluation", "imputegap.recovery.explainer", "imputegap.recovery.imputation", "imputegap.recovery.manager", "imputegap.recovery.optimization", "imputegap.tools", "imputegap.tools.algorithm_parameters", "imputegap.tools.utils", "imputegap.wrapper", "imputegap package", "imputegap.tools.algorithm_parameters package", "Submodules", "imputegap.recovery.benchmarking package", "imputegap.algorithms.cdrec package", "imputegap.recovery.evaluation package", "imputegap.recovery.explainer package", "imputegap.algorithms.iim package", "imputegap.recovery.imputation package", "imputegap.recovery.manager package", "imputegap.algorithms.mean_impute package", "imputegap.algorithms.min_impute package", "imputegap.algorithms.mrnn package", "imputegap.recovery.optimization package", "imputegap.algorithms.stmvl package", "imputegap.tools package", "imputegap.tools.utils package", "imputegap.wrapper package", "imputegap.algorithms.zero_impute package", "imputegap documentation", "imputegap"], "titleterms": {"algorithm": [0, 1, 2, 3, 4, 5, 6, 7, 22, 25, 28, 29, 30, 32, 36], "algorithm_paramet": [15, 19], "benchmark": [8, 21], "cdrec": [1, 22], "content": [18, 24, 26, 27, 31, 35], "document": [19, 20, 21, 23, 33, 34, 37], "evalu": [9, 21, 23], "explain": [10, 24], "iim": [2, 25], "imput": [11, 26], "imputegap": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "manag": [12, 27], "mean_imput": [3, 28], "min_imput": [4, 29], "modul": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "mrnn": [5, 30], "optim": [13, 31], "packag": [18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "recoveri": [8, 9, 10, 11, 12, 13, 21, 23, 24, 26, 27, 31], "stmvl": [6, 32], "subclass": 26, "submodul": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "subpackag": 18, "tool": [14, 15, 16, 19, 33, 34], "util": [16, 19, 34], "wrapper": [17, 35], "zero_imput": [7, 36]}})
\ No newline at end of file
+Search.setIndex({"alltitles": {"Module contents": [[19, "module-imputegap"], [25, "module-imputegap.recovery.explainer"], [27, "module-imputegap.recovery.imputation"], [28, "module-imputegap.recovery.manager"], [32, "module-imputegap.recovery.optimization"], [36, "module-imputegap.wrapper"]], "Modules": [[20, "module-imputegap.tools"], [21, "module-imputegap.algorithms"], [22, "module-imputegap.recovery.benchmark"], [23, "module-imputegap.algorithms.cdrec"], [24, "module-imputegap.recovery.evaluation"], [26, "module-imputegap.algorithms.iim"], [29, "module-imputegap.algorithms.mean_impute"], [30, "module-imputegap.algorithms.min_impute"], [31, "module-imputegap.algorithms.mrnn"], [33, "module-imputegap.algorithms.stmvl"], [34, "module-imputegap.tools"], [35, "module-imputegap.tools"], [37, "module-imputegap.algorithms.zero_impute"]], "Subclasses": [[27, "subclasses"], [27, "id1"], [27, "id2"], [27, "id3"], [27, "id4"]], "Submodule Documentation": [[20, "submodule-documentation"], [21, "submodule-documentation"], [22, "submodule-documentation"], [24, "submodule-documentation"], [34, "submodule-documentation"], [35, "submodule-documentation"]], "Submodules": [[19, "submodules"], [20, "submodules"], [21, null], [22, "submodules"], [23, "submodules"], [24, "submodules"], [25, "submodules"], [26, "submodules"], [27, "submodules"], [28, "submodules"], [29, "submodules"], [30, "submodules"], [31, "submodules"], [32, "submodules"], [33, "submodules"], [34, "submodules"], [35, "submodules"], [36, "submodules"], [37, "submodules"]], "Subpackages": [[19, "subpackages"]], "imputegap": [[38, "imputegap"], [39, null]], "imputegap documentation": [[38, null]], "imputegap package": [[19, null]], "imputegap.algorithms": [[0, null]], "imputegap.algorithms.cdrec": [[1, null]], "imputegap.algorithms.cdrec package": [[23, null]], "imputegap.algorithms.iim": [[2, null]], "imputegap.algorithms.iim package": [[26, null]], "imputegap.algorithms.mean_impute": [[3, null]], "imputegap.algorithms.mean_impute package": [[29, null]], "imputegap.algorithms.min_impute": [[4, null]], "imputegap.algorithms.min_impute package": [[30, null]], "imputegap.algorithms.mrnn": [[5, null]], "imputegap.algorithms.mrnn package": [[31, null]], "imputegap.algorithms.stmvl": [[6, null]], "imputegap.algorithms.stmvl package": [[33, null]], "imputegap.algorithms.zero_impute": [[7, null]], "imputegap.algorithms.zero_impute package": [[37, null]], "imputegap.recovery.benchmark": [[8, null], [9, null]], "imputegap.recovery.benchmark package": [[22, null]], "imputegap.recovery.evaluation": [[10, null]], "imputegap.recovery.evaluation module": [[22, "module-0"], [24, "module-0"]], "imputegap.recovery.evaluation package": [[24, null]], "imputegap.recovery.explainer": [[11, null]], "imputegap.recovery.explainer package": [[25, null]], "imputegap.recovery.imputation": [[12, null]], "imputegap.recovery.imputation package": [[27, null]], "imputegap.recovery.manager": [[13, null]], "imputegap.recovery.manager package": [[28, null]], "imputegap.recovery.optimization": [[14, null]], "imputegap.recovery.optimization package": [[32, null]], "imputegap.tools": [[15, null]], "imputegap.tools package": [[34, null]], "imputegap.tools.algorithm_parameters": [[16, null]], "imputegap.tools.algorithm_parameters package": [[20, null]], "imputegap.tools.utils": [[17, null]], "imputegap.tools.utils module": [[20, "module-imputegap.tools.algorithm_parameters"], [35, "module-imputegap.tools.utils"]], "imputegap.tools.utils package": [[35, null]], "imputegap.wrapper": [[18, null]], "imputegap.wrapper package": [[36, null]]}, "docnames": ["autosummary/imputegap.algorithms", "autosummary/imputegap.algorithms.cdrec", "autosummary/imputegap.algorithms.iim", "autosummary/imputegap.algorithms.mean_impute", "autosummary/imputegap.algorithms.min_impute", "autosummary/imputegap.algorithms.mrnn", "autosummary/imputegap.algorithms.stmvl", "autosummary/imputegap.algorithms.zero_impute", "autosummary/imputegap.recovery.benchmark", "autosummary/imputegap.recovery.benchmarking", "autosummary/imputegap.recovery.evaluation", "autosummary/imputegap.recovery.explainer", "autosummary/imputegap.recovery.imputation", "autosummary/imputegap.recovery.manager", "autosummary/imputegap.recovery.optimization", "autosummary/imputegap.tools", "autosummary/imputegap.tools.algorithm_parameters", "autosummary/imputegap.tools.utils", "autosummary/imputegap.wrapper", "imputegap", "imputegap.algorithm_parameters", "imputegap.algorithms", "imputegap.benchmark", "imputegap.cdrec", "imputegap.evaluation", "imputegap.explainer", "imputegap.iim", "imputegap.imputation", "imputegap.manager", "imputegap.mean_impute", "imputegap.min_impute", "imputegap.mrnn", "imputegap.optimization", "imputegap.stmvl", "imputegap.tools", "imputegap.utils", "imputegap.wrapper", "imputegap.zero_impute", "index", "modules"], "envversion": {"sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["autosummary/imputegap.algorithms.rst", "autosummary/imputegap.algorithms.cdrec.rst", "autosummary/imputegap.algorithms.iim.rst", "autosummary/imputegap.algorithms.mean_impute.rst", "autosummary/imputegap.algorithms.min_impute.rst", "autosummary/imputegap.algorithms.mrnn.rst", "autosummary/imputegap.algorithms.stmvl.rst", "autosummary/imputegap.algorithms.zero_impute.rst", "autosummary/imputegap.recovery.benchmark.rst", "autosummary/imputegap.recovery.benchmarking.rst", "autosummary/imputegap.recovery.evaluation.rst", "autosummary/imputegap.recovery.explainer.rst", "autosummary/imputegap.recovery.imputation.rst", "autosummary/imputegap.recovery.manager.rst", "autosummary/imputegap.recovery.optimization.rst", "autosummary/imputegap.tools.rst", "autosummary/imputegap.tools.algorithm_parameters.rst", "autosummary/imputegap.tools.utils.rst", "autosummary/imputegap.wrapper.rst", "imputegap.rst", "imputegap.algorithm_parameters.rst", "imputegap.algorithms.rst", "imputegap.benchmark.rst", "imputegap.cdrec.rst", "imputegap.evaluation.rst", "imputegap.explainer.rst", "imputegap.iim.rst", "imputegap.imputation.rst", "imputegap.manager.rst", "imputegap.mean_impute.rst", "imputegap.min_impute.rst", "imputegap.mrnn.rst", "imputegap.optimization.rst", "imputegap.stmvl.rst", "imputegap.tools.rst", "imputegap.utils.rst", "imputegap.wrapper.rst", "imputegap.zero_impute.rst", "index.rst", "modules.rst"], "indexentries": {"__init__() (imputegap.recovery.imputation.baseimputer method)": [[27, "imputegap.recovery.imputation.BaseImputer.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.__init__", false]], "__init__() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.__init__", false]], "algorithm (imputegap.recovery.imputation.baseimputer attribute)": [[27, "imputegap.recovery.imputation.BaseImputer.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.deeplearning.mrnn attribute)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec attribute)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.patternsearch.stmvl attribute)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.iim attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.meanimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.minimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.algorithm", false]], "algorithm (imputegap.recovery.imputation.imputation.statistics.zeroimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.algorithm", false]], "average_runs_by_names() (imputegap.recovery.benchmark.benchmark method)": [[22, "id1", false], [22, "imputegap.recovery.benchmark.Benchmark.average_runs_by_names", false]], "avg_results() (imputegap.recovery.benchmark.benchmark method)": [[22, "id2", false], [22, "imputegap.recovery.benchmark.Benchmark.avg_results", false]], "baseimputer (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.BaseImputer", false]], "baseoptimizer (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.BaseOptimizer", false]], "benchmark (class in imputegap.recovery.benchmark)": [[22, "id0", false], [22, "imputegap.recovery.benchmark.Benchmark", false]], "blackout() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.blackout", false]], "cdrec() (in module imputegap.algorithms.cdrec)": [[23, "imputegap.algorithms.cdrec.cdrec", false]], "compute_all_metrics() (imputegap.recovery.evaluation.evaluation method)": [[24, "id1", false], [24, "imputegap.recovery.evaluation.Evaluation.compute_all_metrics", false]], "compute_correlation() (imputegap.recovery.evaluation.evaluation method)": [[24, "id2", false], [24, "imputegap.recovery.evaluation.Evaluation.compute_correlation", false]], "compute_mae() (imputegap.recovery.evaluation.evaluation method)": [[24, "id3", false], [24, "imputegap.recovery.evaluation.Evaluation.compute_mae", false]], "compute_mi() (imputegap.recovery.evaluation.evaluation method)": [[24, "id4", false], [24, "imputegap.recovery.evaluation.Evaluation.compute_mi", false]], "compute_rmse() (imputegap.recovery.evaluation.evaluation method)": [[24, "id5", false], [24, "imputegap.recovery.evaluation.Evaluation.compute_rmse", false]], "convert_results() (imputegap.recovery.explainer.explainer method)": [[25, "id0", false], [25, "imputegap.recovery.explainer.Explainer.convert_results", false]], "disjoint() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.disjoint", false]], "display_title() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.display_title", false]], "eval() (imputegap.recovery.benchmark.benchmark method)": [[22, "id3", false], [22, "imputegap.recovery.benchmark.Benchmark.eval", false]], "evaluate_params() (imputegap.recovery.imputation.imputation method)": [[27, "imputegap.recovery.imputation.Imputation.evaluate_params", false]], "evaluation (class in imputegap.recovery.evaluation)": [[24, "id0", false], [24, "imputegap.recovery.evaluation.Evaluation", false]], "execute_shap_model() (imputegap.recovery.explainer.explainer method)": [[25, "id1", false], [25, "imputegap.recovery.explainer.Explainer.execute_shap_model", false]], "explainer (class in imputegap.recovery.explainer)": [[25, "imputegap.recovery.explainer.Explainer", false]], "extractor_pycatch() (imputegap.recovery.explainer.explainer method)": [[25, "id2", false], [25, "imputegap.recovery.explainer.Explainer.extractor_pycatch", false]], "gaussian() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.gaussian", false]], "generate_heatmap() (imputegap.recovery.benchmark.benchmark method)": [[22, "id4", false], [22, "imputegap.recovery.benchmark.Benchmark.generate_heatmap", false]], "generate_plots() (imputegap.recovery.benchmark.benchmark method)": [[22, "id5", false], [22, "imputegap.recovery.benchmark.Benchmark.generate_plots", false]], "generate_reports_excel() (imputegap.recovery.benchmark.benchmark method)": [[22, "id6", false], [22, "imputegap.recovery.benchmark.Benchmark.generate_reports_excel", false]], "generate_reports_txt() (imputegap.recovery.benchmark.benchmark method)": [[22, "id7", false], [22, "imputegap.recovery.benchmark.Benchmark.generate_reports_txt", false]], "iim() (in module imputegap.algorithms.iim)": [[26, "imputegap.algorithms.iim.iim", false]], "import_matrix() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.import_matrix", false]], "imputation (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation", false]], "imputation.deeplearning (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning", false]], "imputation.deeplearning.mrnn (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN", false]], "imputation.graphlearning (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.GraphLearning", false]], "imputation.matrixcompletion (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion", false]], "imputation.matrixcompletion.cdrec (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec", false]], "imputation.patternsearch (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch", false]], "imputation.patternsearch.stmvl (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL", false]], "imputation.statistics (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.Statistics", false]], "imputation.statistics.iim (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM", false]], "imputation.statistics.meanimpute (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute", false]], "imputation.statistics.minimpute (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute", false]], "imputation.statistics.zeroimpute (class in imputegap.recovery.imputation)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute", false]], "impute() (imputegap.recovery.imputation.baseimputer method)": [[27, "imputegap.recovery.imputation.BaseImputer.impute", false]], "impute() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.impute", false]], "impute() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.impute", false]], "impute() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.impute", false]], "impute() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.impute", false]], "imputegap": [[19, "module-imputegap", false]], "imputegap.algorithms": [[0, "module-imputegap.algorithms", false], [21, "module-imputegap.algorithms", false]], "imputegap.algorithms.cdrec": [[1, "module-imputegap.algorithms.cdrec", false], [23, "module-imputegap.algorithms.cdrec", false]], "imputegap.algorithms.iim": [[2, "module-imputegap.algorithms.iim", false], [26, "module-imputegap.algorithms.iim", false]], "imputegap.algorithms.mean_impute": [[3, "module-imputegap.algorithms.mean_impute", false], [29, "module-imputegap.algorithms.mean_impute", false]], "imputegap.algorithms.min_impute": [[4, "module-imputegap.algorithms.min_impute", false], [30, "module-imputegap.algorithms.min_impute", false]], "imputegap.algorithms.mrnn": [[5, "module-imputegap.algorithms.mrnn", false], [31, "module-imputegap.algorithms.mrnn", false]], "imputegap.algorithms.stmvl": [[6, "module-imputegap.algorithms.stmvl", false], [33, "module-imputegap.algorithms.stmvl", false]], "imputegap.algorithms.zero_impute": [[7, "module-imputegap.algorithms.zero_impute", false], [37, "module-imputegap.algorithms.zero_impute", false]], "imputegap.recovery.benchmark": [[8, "module-imputegap.recovery.benchmark", false], [9, "module-imputegap.recovery.benchmark", false], [22, "module-0", false], [22, "module-imputegap.recovery.benchmark", false]], "imputegap.recovery.evaluation": [[10, "module-imputegap.recovery.evaluation", false], [24, "module-0", false], [24, "module-imputegap.recovery.evaluation", false]], "imputegap.recovery.explainer": [[11, "module-imputegap.recovery.explainer", false], [25, "module-imputegap.recovery.explainer", false]], "imputegap.recovery.imputation": [[12, "module-imputegap.recovery.imputation", false], [27, "module-imputegap.recovery.imputation", false]], "imputegap.recovery.manager": [[13, "module-imputegap.recovery.manager", false], [28, "module-imputegap.recovery.manager", false]], "imputegap.recovery.optimization": [[14, "module-imputegap.recovery.optimization", false], [32, "module-imputegap.recovery.optimization", false]], "imputegap.tools": [[15, "module-imputegap.tools", false], [20, "module-imputegap.tools", false], [34, "module-imputegap.tools", false], [35, "module-imputegap.tools", false]], "imputegap.tools.algorithm_parameters": [[16, "module-imputegap.tools.algorithm_parameters", false], [20, "module-imputegap.tools.algorithm_parameters", false]], "imputegap.tools.utils": [[17, "module-imputegap.tools.utils", false], [35, "module-imputegap.tools.utils", false]], "imputegap.wrapper": [[18, "module-imputegap.wrapper", false], [36, "module-imputegap.wrapper", false]], "load_configuration() (imputegap.recovery.explainer.explainer method)": [[25, "id3", false], [25, "imputegap.recovery.explainer.Explainer.load_configuration", false]], "load_parameters() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.load_parameters", false]], "load_share_lib() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.load_share_lib", false]], "load_timeseries() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.load_timeseries", false]], "logs (imputegap.recovery.imputation.baseimputer attribute)": [[27, "imputegap.recovery.imputation.BaseImputer.logs", false]], "logs (imputegap.recovery.imputation.imputation.deeplearning.mrnn attribute)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.logs", false]], "logs (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec attribute)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.logs", false]], "logs (imputegap.recovery.imputation.imputation.patternsearch.stmvl attribute)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.iim attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.meanimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.minimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.logs", false]], "logs (imputegap.recovery.imputation.imputation.statistics.zeroimpute attribute)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.logs", false]], "mcar() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.mcar", false]], "mean_impute() (in module imputegap.algorithms.mean_impute)": [[29, "imputegap.algorithms.mean_impute.mean_impute", false]], "min_impute() (in module imputegap.algorithms.min_impute)": [[30, "imputegap.algorithms.min_impute.min_impute", false]], "missing_percentage() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.missing_percentage", false]], "module": [[0, "module-imputegap.algorithms", false], [1, "module-imputegap.algorithms.cdrec", false], [2, "module-imputegap.algorithms.iim", false], [3, "module-imputegap.algorithms.mean_impute", false], [4, "module-imputegap.algorithms.min_impute", false], [5, "module-imputegap.algorithms.mrnn", false], [6, "module-imputegap.algorithms.stmvl", false], [7, "module-imputegap.algorithms.zero_impute", false], [8, "module-imputegap.recovery.benchmark", false], [9, "module-imputegap.recovery.benchmark", false], [10, "module-imputegap.recovery.evaluation", false], [11, "module-imputegap.recovery.explainer", false], [12, "module-imputegap.recovery.imputation", false], [13, "module-imputegap.recovery.manager", false], [14, "module-imputegap.recovery.optimization", false], [15, "module-imputegap.tools", false], [16, "module-imputegap.tools.algorithm_parameters", false], [17, "module-imputegap.tools.utils", false], [18, "module-imputegap.wrapper", false], [19, "module-imputegap", false], [20, "module-imputegap.tools", false], [20, "module-imputegap.tools.algorithm_parameters", false], [21, "module-imputegap.algorithms", false], [22, "module-0", false], [22, "module-imputegap.recovery.benchmark", false], [23, "module-imputegap.algorithms.cdrec", false], [24, "module-0", false], [24, "module-imputegap.recovery.evaluation", false], [25, "module-imputegap.recovery.explainer", false], [26, "module-imputegap.algorithms.iim", false], [27, "module-imputegap.recovery.imputation", false], [28, "module-imputegap.recovery.manager", false], [29, "module-imputegap.algorithms.mean_impute", false], [30, "module-imputegap.algorithms.min_impute", false], [31, "module-imputegap.algorithms.mrnn", false], [32, "module-imputegap.recovery.optimization", false], [33, "module-imputegap.algorithms.stmvl", false], [34, "module-imputegap.tools", false], [35, "module-imputegap.tools", false], [35, "module-imputegap.tools.utils", false], [36, "module-imputegap.wrapper", false], [37, "module-imputegap.algorithms.zero_impute", false]], "mrnn() (in module imputegap.algorithms.mrnn)": [[31, "imputegap.algorithms.mrnn.mrnn", false]], "native_cdrec() (in module imputegap.algorithms.cdrec)": [[23, "imputegap.algorithms.cdrec.native_cdrec", false]], "native_stmvl() (in module imputegap.algorithms.stmvl)": [[33, "imputegap.algorithms.stmvl.native_stmvl", false]], "normalize() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.normalize", false]], "optimization (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.Optimization", false]], "optimization.bayesian (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.Optimization.Bayesian", false]], "optimization.greedy (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.Optimization.Greedy", false]], "optimization.particleswarm (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.Optimization.ParticleSwarm", false]], "optimization.successivehalving (class in imputegap.recovery.optimization)": [[32, "imputegap.recovery.optimization.Optimization.SuccessiveHalving", false]], "optimize() (imputegap.recovery.optimization.baseoptimizer method)": [[32, "imputegap.recovery.optimization.BaseOptimizer.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.bayesian method)": [[32, "imputegap.recovery.optimization.Optimization.Bayesian.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.greedy method)": [[32, "imputegap.recovery.optimization.Optimization.Greedy.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.particleswarm method)": [[32, "imputegap.recovery.optimization.Optimization.ParticleSwarm.optimize", false]], "optimize() (imputegap.recovery.optimization.optimization.successivehalving method)": [[32, "imputegap.recovery.optimization.Optimization.SuccessiveHalving.optimize", false]], "overlap() (imputegap.recovery.manager.timeseries.contamination method)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination.overlap", false]], "plot() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.plot", false]], "print() (imputegap.recovery.explainer.explainer method)": [[25, "id4", false], [25, "imputegap.recovery.explainer.Explainer.print", false]], "print() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.print", false]], "print_results() (imputegap.recovery.manager.timeseries method)": [[28, "imputegap.recovery.manager.TimeSeries.print_results", false]], "save_optimization() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.save_optimization", false]], "score() (imputegap.recovery.imputation.baseimputer method)": [[27, "imputegap.recovery.imputation.BaseImputer.score", false]], "score() (imputegap.recovery.imputation.imputation.deeplearning.mrnn method)": [[27, "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN.score", false]], "score() (imputegap.recovery.imputation.imputation.matrixcompletion.cdrec method)": [[27, "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec.score", false]], "score() (imputegap.recovery.imputation.imputation.patternsearch.stmvl method)": [[27, "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.iim method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.IIM.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.meanimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.minimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.MinImpute.score", false]], "score() (imputegap.recovery.imputation.imputation.statistics.zeroimpute method)": [[27, "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute.score", false]], "search_path() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.search_path", false]], "shap_explainer() (imputegap.recovery.explainer.explainer method)": [[25, "imputegap.recovery.explainer.Explainer.shap_explainer", false]], "stmvl() (in module imputegap.algorithms.stmvl)": [[33, "imputegap.algorithms.stmvl.stmvl", false]], "timeseries (class in imputegap.recovery.manager)": [[28, "imputegap.recovery.manager.TimeSeries", false]], "timeseries.contamination (class in imputegap.recovery.manager)": [[28, "imputegap.recovery.manager.TimeSeries.Contamination", false]], "verification_limitation() (in module imputegap.tools.utils)": [[35, "imputegap.tools.utils.verification_limitation", false]], "zero_impute() (in module imputegap.algorithms.zero_impute)": [[37, "imputegap.algorithms.zero_impute.zero_impute", false]]}, "objects": {"": [[19, 0, 0, "-", "imputegap"]], "imputegap": [[21, 0, 0, "-", "algorithms"], [35, 0, 0, "-", "tools"], [36, 0, 0, "-", "wrapper"]], "imputegap.algorithms": [[23, 0, 0, "-", "cdrec"], [26, 0, 0, "-", "iim"], [29, 0, 0, "-", "mean_impute"], [30, 0, 0, "-", "min_impute"], [31, 0, 0, "-", "mrnn"], [33, 0, 0, "-", "stmvl"], [37, 0, 0, "-", "zero_impute"]], "imputegap.algorithms.cdrec": [[23, 1, 1, "", "cdrec"], [23, 1, 1, "", "native_cdrec"]], "imputegap.algorithms.iim": [[26, 1, 1, "", "iim"]], "imputegap.algorithms.mean_impute": [[29, 1, 1, "", "mean_impute"]], "imputegap.algorithms.min_impute": [[30, 1, 1, "", "min_impute"]], "imputegap.algorithms.mrnn": [[31, 1, 1, "", "mrnn"]], "imputegap.algorithms.stmvl": [[33, 1, 1, "", "native_stmvl"], [33, 1, 1, "", "stmvl"]], "imputegap.algorithms.zero_impute": [[37, 1, 1, "", "zero_impute"]], "imputegap.recovery": [[22, 0, 0, "module-0", "benchmark"], [24, 0, 0, "module-0", "evaluation"], [25, 0, 0, "-", "explainer"], [27, 0, 0, "-", "imputation"], [28, 0, 0, "-", "manager"], [32, 0, 0, "-", "optimization"]], "imputegap.recovery.benchmark": [[22, 2, 1, "id0", "Benchmark"]], "imputegap.recovery.benchmark.Benchmark": [[22, 3, 1, "id1", "average_runs_by_names"], [22, 3, 1, "id2", "avg_results"], [22, 3, 1, "id3", "eval"], [22, 3, 1, "id4", "generate_heatmap"], [22, 3, 1, "id5", "generate_plots"], [22, 3, 1, "id6", "generate_reports_excel"], [22, 3, 1, "id7", "generate_reports_txt"]], "imputegap.recovery.evaluation": [[24, 2, 1, "id0", "Evaluation"]], "imputegap.recovery.evaluation.Evaluation": [[24, 3, 1, "id1", "compute_all_metrics"], [24, 3, 1, "id2", "compute_correlation"], [24, 3, 1, "id3", "compute_mae"], [24, 3, 1, "id4", "compute_mi"], [24, 3, 1, "id5", "compute_rmse"]], "imputegap.recovery.explainer": [[25, 2, 1, "", "Explainer"]], "imputegap.recovery.explainer.Explainer": [[25, 3, 1, "id0", "convert_results"], [25, 3, 1, "id1", "execute_shap_model"], [25, 3, 1, "id2", "extractor_pycatch"], [25, 3, 1, "id3", "load_configuration"], [25, 3, 1, "id4", "print"], [25, 3, 1, "", "shap_explainer"]], "imputegap.recovery.imputation": [[27, 2, 1, "", "BaseImputer"], [27, 2, 1, "", "Imputation"]], "imputegap.recovery.imputation.BaseImputer": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation": [[27, 2, 1, "", "DeepLearning"], [27, 2, 1, "", "GraphLearning"], [27, 2, 1, "", "MatrixCompletion"], [27, 2, 1, "", "PatternSearch"], [27, 2, 1, "", "Statistics"], [27, 3, 1, "", "evaluate_params"]], "imputegap.recovery.imputation.Imputation.DeepLearning": [[27, 2, 1, "", "MRNN"]], "imputegap.recovery.imputation.Imputation.DeepLearning.MRNN": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.MatrixCompletion": [[27, 2, 1, "", "CDRec"]], "imputegap.recovery.imputation.Imputation.MatrixCompletion.CDRec": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.PatternSearch": [[27, 2, 1, "", "STMVL"]], "imputegap.recovery.imputation.Imputation.PatternSearch.STMVL": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics": [[27, 2, 1, "", "IIM"], [27, 2, 1, "", "MeanImpute"], [27, 2, 1, "", "MinImpute"], [27, 2, 1, "", "ZeroImpute"]], "imputegap.recovery.imputation.Imputation.Statistics.IIM": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.MeanImpute": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.MinImpute": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.imputation.Imputation.Statistics.ZeroImpute": [[27, 3, 1, "", "__init__"], [27, 4, 1, "", "algorithm"], [27, 3, 1, "", "impute"], [27, 4, 1, "", "logs"], [27, 3, 1, "", "score"]], "imputegap.recovery.manager": [[28, 2, 1, "", "TimeSeries"]], "imputegap.recovery.manager.TimeSeries": [[28, 2, 1, "", "Contamination"], [28, 3, 1, "", "import_matrix"], [28, 3, 1, "", "load_timeseries"], [28, 3, 1, "", "normalize"], [28, 3, 1, "", "plot"], [28, 3, 1, "", "print"], [28, 3, 1, "", "print_results"]], "imputegap.recovery.manager.TimeSeries.Contamination": [[28, 3, 1, "", "blackout"], [28, 3, 1, "", "disjoint"], [28, 3, 1, "", "gaussian"], [28, 3, 1, "", "mcar"], [28, 3, 1, "", "missing_percentage"], [28, 3, 1, "", "overlap"]], "imputegap.recovery.optimization": [[32, 2, 1, "", "BaseOptimizer"], [32, 2, 1, "", "Optimization"]], "imputegap.recovery.optimization.BaseOptimizer": [[32, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization": [[32, 2, 1, "", "Bayesian"], [32, 2, 1, "", "Greedy"], [32, 2, 1, "", "ParticleSwarm"], [32, 2, 1, "", "SuccessiveHalving"]], "imputegap.recovery.optimization.Optimization.Bayesian": [[32, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.Greedy": [[32, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.ParticleSwarm": [[32, 3, 1, "", "optimize"]], "imputegap.recovery.optimization.Optimization.SuccessiveHalving": [[32, 3, 1, "", "optimize"]], "imputegap.tools": [[20, 0, 0, "-", "algorithm_parameters"], [35, 0, 0, "-", "utils"]], "imputegap.tools.utils": [[35, 1, 1, "", "display_title"], [35, 1, 1, "", "load_parameters"], [35, 1, 1, "", "load_share_lib"], [35, 1, 1, "", "save_optimization"], [35, 1, 1, "", "search_path"], [35, 1, 1, "", "verification_limitation"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "method", "Python method"], "4": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:method", "4": "py:attribute"}, "terms": {"": [26, 27, 35], "0": [22, 23, 25, 27, 28, 31, 33, 35, 37], "000001": 23, "00023": [26, 27], "00040669209664367576": 22, "000461578369140625": 22, "00048422813415527344": 22, "0005095005035400391": 22, "0005536079406738281": 22, "0005743503570556641": 22, "0005755424499511719": 22, "0009615421295166016": 22, "001": 31, "0010058879852294922": 22, "0010309219360351562": 22, "001056671142578125": 22, "0014975078469404196": 22, "0019745826721191406": 22, "0020699501037597656": 22, "0022056102752685547": 22, "002231597900390625": 22, "003415822982788086": 22, "0035880775657246428": 22, "00482487678527832": 22, "006171770470542263": 22, "007096290588378906": 22, "0072672367095947266": 22, "007429599761962891": 22, "007513931343350665": 22, "00801849365234375": 22, "01": [27, 35], "010712060535523": 22, "01121013333181846": 22, "0112488396023014": 22, "011590260996247858": 22, "0125309431502871": 22, "013509125598802707": 22, "01421": [23, 27], "0143105930114702": 22, "0160968166750064": 22, "01713728904724121": 22, "0183962968474991": 22, "019": [23, 27], "020630168509677818": 22, "021165172206064526": 22, "02915935932568557": 22, "0317754516097355": 22, "037161060882302754": 22, "0379347892718205": 22, "04155403791391449": 22, "042899370193481445": 22, "043192148208618164": 22, "04321551322937012": 22, "04391813278198242": 22, "0441472017887297": 22, "04829454421997": 22, "05": [22, 28], "0552448338389784": 22, "06361822797740405": 22, "064299483512458": 22, "06616526470761779": 22, "07010293006897": 22, "0807965786089415": 22, "08459032692102293": 22, "09218788146972656": 22, "09549617767333984": 22, "09925566629402761": 22, "1": [22, 23, 24, 25, 27, 28, 30, 33, 35, 37], "10": [23, 25, 26, 27, 28, 31], "100": [23, 27, 32, 35], "1000": 31, "1007": [23, 27], "10781252370591506": 22, "10793352127075": 22, "10881781578063965": 22, "10908095436833125": 22, "1109": [26, 27, 31], "11218049973594252": 22, "1129295825958252": 22, "1167751522591498": 22, "11876685901414151": 22, "11924522547609226": 22, "12567590499764303": 22, "13422239939628303": 22, "13619797235197734": 22, "1380846624733049": 22, "13894771223733138": 22, "14709529129218185": 22, "1477": [27, 31], "1490": [27, 31], "15": 25, "1516089897042538": 22, "151907444000244": 22, "16": 28, "160": [26, 27], "16953644212278182": 22, "17044353485107422": 22, "171": [26, 27], "17184901237487793": 22, "1728806495666504": 22, "17329692840576172": 22, "18152059329152104": 22, "186191167936035": 22, "1974": 22, "2": [22, 26, 27, 28, 29, 30, 33, 37], "2018": [27, 31], "2019": [26, 27, 31], "2020": [23, 27], "22056702659999994": 22, "2257": [23, 27], "2280": [23, 27], "23303624184873978": 22, "2366529609250008": 22, "2380077838897705": 22, "24340565131372927": 22, "250": 32, "255": 22, "2696133927362288": 22, "2730547993858495": 22, "2739817718416822": 22, "2753022759369617": 22, "2874712": [27, 31], "2939506418814281": 22, "2d": 22, "3": [27, 29], "31524085998535": 22, "32988968428439397": 22, "33": 22, "34494332493982044": 22, "346560495723809": 22, "35": 22, "35th": [26, 27], "37254427425455994": 22, "38695094864012947": 22, "39007056542870916": 22, "3968159514130716": 22, "4": [22, 25, 29, 30, 37], "40": 22, "4155649406397416": 22, "42237901687622": 22, "42568325996399": 22, "4355197572001326": 22, "439927101135254": 22, "4445625930776235": 22, "479795694351196": 22, "49": 22, "4924048353228427": 22, "5": [27, 29, 31], "50": [22, 27, 32], "52": 22, "53373336791992": 22, "54": 22, "543020248413086": 22, "5434405584289141": 22, "5650541301828254": 22, "5862696375344495": 22, "5999574661254883": 22, "6": [22, 25, 29, 30, 37], "6027573766269363": 22, "6064670085906982": 22, "6077785491943359": 22, "6101157665253": 22, "6166613101959229": 22, "62": [23, 27], "64": 31, "66": [27, 31], "66455388069153": 22, "6805167198181152": 22, "7": [23, 27, 28, 31, 33], "7019459696903068": 22, "7219362152785619": 22, "7312998041323675": 22, "7326965517264863": 22, "7328867182584357": 22, "7380530834197998": 22, "7425412593844177": 22, "7426695186604741": 22, "7470128536224": 22, "7544523683503829": 22, "757440007226372": 22, "7599852461729673": 22, "7610548321723654": 22, "761136543268339": 22, "7641520748788702": 22, "7646823531588104": 22, "7672558930795506": 22, "7774057495176013": 22, "7826457023620605": 22, "7952869439926": 22, "8": [22, 28], "8134840739732964": 22, "814120507570725": 22, "8178796825899766": 22, "8280959876205578": 22, "8390532279447225": 22, "840": 22, "85": [27, 33], "8519431955571422": 22, "8785057067871094": 22, "88247036933899": 22, "8944975075266335": 22, "9004526656857551": 22, "9166777087122915": 22, "9180937736429735": 22, "919934494058292": 22, "9234927128429051": 22, "9249744935121553": 22, "9293322959355041": 22, "9378046989440918": 22, "9458508648057621": 22, "94813060760498": 22, "9531900627237018": 22, "9562773704528809": 22, "968435455112644": 22, "9699990038879407": 22, "9711348247027318": 22, "9829398352220718": 22, "9901338133811375": 22, "9914069853975623": 22, "A": [22, 24, 25, 26, 27, 28, 32, 35], "If": [22, 25, 27, 28, 29, 30, 35], "In": 38, "It": [28, 29, 30], "TO": 27, "The": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], "__init__": [19, 27, 28], "__py_alpha": 33, "__py_epsilon": 23, "__py_gamma": 33, "__py_iter": 23, "__py_matrix": [23, 33], "__py_rank": 23, "__py_window": 33, "_check_param": 27, "_config_optim": 22, "_object": 32, "_optim": 27, "absolut": 24, "abstract": [27, 32], "academi": [27, 33], "accept": 35, "accur": 35, "acq_func": [27, 32], "acquisit": [27, 32], "across": 22, "action": 26, "ad": 27, "adapt": [26, 27], "addit": [32, 38], "adjust": 35, "advanc": [27, 33, 38], "after": [23, 27, 32, 33], "aggreg": [26, 27], "alcohol": 22, "algo": [22, 25], "algo_cod": [26, 27], "algorithm": [19, 20, 21, 22, 24, 25, 27, 28, 32, 34, 35, 36, 38, 39], "all": [22, 25, 28, 29, 30, 33, 37], "allow": [23, 28, 38], "alpha": [27, 33], "also": 28, "amount": 24, "an": [22, 27, 35], "analysi": [25, 26, 27, 38], "appli": [22, 25, 28], "applic": 28, "approach": 31, "ar": [25, 27, 28, 31], "arrai": [22, 28, 29, 30, 37], "aut": 35, "author": [33, 35, 37], "auto": 27, "automl": 38, "avail": 25, "averag": [22, 24], "average_runs_by_nam": 22, "avg_result": 22, "b": 35, "bafu": 28, "base": [22, 23, 24, 25, 27, 28, 31, 32, 35], "baseimput": [19, 27], "baseoptim": [19, 32], "bayesian": [19, 22, 27, 32], "been": [22, 29, 30, 37], "begin": [25, 28], "behavior": 26, "being": 24, "best": 32, "better": 33, "between": [24, 35, 38], "biomed": [27, 31], "blackout": 28, "block": [23, 25, 27, 28], "block_siz": [25, 28], "bool": [22, 23, 25, 26, 27, 28, 31, 35], "bound": 35, "b\u00f6hlen": [23, 27], "c": [23, 33], "c1": [27, 32], "c2": [27, 32], "calcul": 22, "call": [27, 32], "can": [28, 37], "catch24": 25, "categor": 22, "categori": 25, "cdll": 35, "cdrec": [19, 22, 25, 27, 32, 33, 35, 37, 38, 39], "cdrec_imput": 27, "centroid": [23, 27], "charact": 28, "check": [27, 35], "china": [26, 27], "chines": [27, 33], "chlorin": 35, "class": [8, 9, 10, 11, 12, 13, 14, 22, 24, 25, 27, 28, 32], "classifi": 26, "climat": 38, "code": [26, 27], "coeffici": [24, 27, 32], "column": [22, 23], "come": 27, "common": [27, 32], "compar": 24, "complet": [22, 28], "complex": 37, "compon": 33, "comprehens": 22, "comput": [24, 25, 26, 27, 28], "compute_all_metr": [19, 24], "compute_correl": [19, 24], "compute_ma": [19, 24], "compute_mi": [19, 24], "compute_rms": [19, 24], "confer": [26, 27], "configur": [22, 25, 27, 32], "consid": 27, "construct": 38, "contain": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37], "contamin": [19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "content": [38, 39], "convert": [25, 35], "convert_result": [19, 25], "correct": 35, "correl": [22, 23, 24, 27, 31], "correspond": 32, "creat": 22, "criterion": 23, "cross": [23, 27], "ctype": 35, "cudr\u00e9": [23, 27], "current": [25, 37], "custom": [23, 35], "data": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "dataset": [22, 24, 25, 27, 28, 29, 30, 32, 35, 37, 38], "decim": 35, "decomposit": [23, 27], "deep": 27, "deeplearn": [19, 27], "def": 28, "default": [22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 37], "defin": 27, "depend": [22, 26], "der": [27, 31], "descript": 25, "detail": [22, 25], "determin": 26, "deviat": [25, 28], "diagnost": [27, 31], "dict": [22, 24, 25, 27, 28, 29, 30, 32, 35, 37], "dictionari": [22, 24, 25, 27, 28, 35], "differ": [23, 26, 28, 32, 36, 38], "dimens": 31, "direct": [27, 31], "directori": [22, 25], "disjoint": 28, "displai": [22, 25, 28, 35], "display_titl": [19, 35], "distribut": 28, "divid": 35, "do_catch24": 25, "document": [19, 39], "doi": [23, 26, 27, 31], "domain": 38, "drift": 22, "dure": [27, 32], "e": [22, 25, 28, 32], "each": [22, 25, 27, 28, 32], "eeg": 22, "effici": 28, "ei": 27, "empti": 35, "end": 28, "energi": 38, "engin": [26, 27, 31], "epsilon": [23, 27], "error": 24, "estim": [26, 27, 31], "etc": 32, "eval": 22, "evalu": [19, 20, 21, 27, 32, 34, 35, 38, 39], "evaluate_param": [19, 27], "exampl": [22, 23, 26, 27, 29, 30, 31, 33, 37], "excel": 22, "execut": [22, 23, 26, 28, 31, 33], "execute_shap_model": [19, 25], "expect": 25, "explain": [19, 28, 38, 39], "explan": [25, 28], "express": 28, "extens": 37, "extern": 27, "extract": [25, 38], "extractor": 25, "extractor_pycatch": [19, 25], "factor": [27, 32], "fals": [22, 25, 27, 28, 35], "featur": [25, 38], "features_categori": 25, "features_list": 25, "figur": 22, "file": [22, 23, 25, 28, 35], "file_nam": [25, 35], "file_path": 25, "fill": [27, 29, 30, 33], "find": [29, 30, 32, 35], "flag": 25, "flaot": 25, "float": [22, 23, 24, 25, 27, 28, 31, 32, 33, 35], "follow": 37, "format": [25, 27, 28, 35], "framework": [36, 38], "fribourg": 35, "from": [25, 27, 28, 29, 30, 35, 38], "function": [1, 2, 3, 4, 5, 6, 7, 17, 20, 21, 22, 24, 26, 27, 29, 30, 31, 32, 34, 35, 36], "futur": 37, "g": [22, 25, 28, 32], "gamma": [27, 33], "gaussian": [27, 28, 32], "gener": [22, 25], "generate_heatmap": 22, "generate_plot": 22, "generate_reports_excel": 22, "generate_reports_txt": 22, "geo": [27, 33], "get": 25, "give": 24, "given": [27, 32, 35], "global": [27, 32], "gp_hedg": [27, 32], "graph": 27, "graphlearn": [19, 27], "greater": 23, "greedi": [19, 27, 32], "ground": [24, 27, 32], "group": 25, "h": [23, 27], "ha": [22, 28], "halv": [27, 32], "handl": [20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 34, 35, 37], "have": [29, 30, 37], "hd": 22, "header": [22, 28], "heatmap": 22, "hidden": [27, 31], "hidden_dim": [27, 31], "high": [23, 27, 35], "high_limit": 35, "higher": [24, 27], "how": 24, "http": [23, 27], "hyperparamet": [27, 32], "i": [22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38], "icd": [26, 27], "ieee": [26, 27, 31], "iim": [19, 22, 25, 27, 33, 37, 38, 39], "iim_imput": 27, "imag": [27, 31], "impact": 38, "implement": [27, 32, 33, 37], "import": 28, "import_matrix": [19, 28], "imput": [19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39], "imputegap": 21, "inch": 28, "includ": [22, 24, 28], "incomp_data": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "index": 28, "indic": 24, "individu": [26, 27], "inertia": [27, 32], "inf": [23, 27], "infect": 27, "inform": [22, 24, 27, 33, 35], "inherit": 27, "initi": [27, 28, 32, 37], "inner": 28, "input": [23, 25, 26, 29, 30, 31, 33, 37], "input_data": [24, 25, 27, 28, 32], "insid": 28, "institut": [27, 33, 35], "int": [22, 23, 25, 26, 27, 28, 31, 32, 33], "integr": 38, "interact": 36, "interfac": [36, 38], "intern": [26, 27], "interpol": [27, 31], "invok": 33, "issu": 38, "iter": [23, 26, 27, 31, 32], "j": [26, 27, 33], "jiaotong": [27, 33], "k": 26, "kept": [27, 32], "keyword": [26, 27, 31], "khayati": [23, 27], "knn": 26, "knowl": [23, 27], "kwarg": 32, "label": 25, "larg": 24, "last": 28, "later": 35, "launch": 25, "lcb": 27, "learn": [23, 26, 27, 31, 32], "learning_neighbor": 27, "learning_neighbour": 27, "learning_r": [27, 31], "length": [27, 28, 31], "less": 23, "level": 22, "leverag": 33, "li": [27, 33], "lib": 35, "lib_cdrec": 35, "lib_path": 23, "librari": [22, 23, 35], "like": [22, 33, 37], "limit": [25, 28, 35], "limit_ratio": 25, "limit_seri": 28, "limit_timestamp": 28, "linear": 24, "list": [22, 25, 27, 28, 32], "load": [25, 27, 28, 35], "load_configur": [19, 25], "load_paramet": [19, 35], "load_share_lib": [19, 35], "load_timeseri": [19, 28], "local": [25, 28, 35], "log": [19, 23, 25, 26, 27, 28, 31, 33], "low": [23, 27, 35], "low_limit": 35, "lower": 35, "m": [23, 27, 31], "macao": [26, 27], "machin": 31, "mae": [22, 24], "magnitud": 24, "mai": [26, 27, 31], "main": 32, "make": 24, "manag": [19, 25, 38, 39], "manipul": 28, "map": 25, "master": 35, "matrix": [22, 23, 26, 27, 28, 29, 30, 31, 33, 37], "matrixcomplet": [19, 27], "mauroux": [23, 27], "max_seri": 28, "max_valu": 28, "maximum": [23, 28], "mcar": [22, 25, 28], "mean": [22, 24, 25, 27, 29], "mean_featur": 25, "mean_imput": [19, 27, 38, 39], "meanimput": 27, "measur": [24, 27, 31], "medic": [27, 31], "medicin": 38, "method": [25, 26, 27, 28, 32, 37], "metric": [22, 24, 27, 28, 32, 33, 38], "mi": [22, 24], "microsoft": [27, 33], "min_imput": [19, 27, 38, 39], "min_max": 28, "minim": 27, "minimput": 27, "minimum": [27, 29, 30], "miss": [22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 37, 38], "missing_percentag": 28, "missing_r": [25, 28], "ml": 27, "model": [25, 26, 27, 31], "modul": [38, 39], "more": [24, 33, 37], "mrnn": [19, 22, 25, 27, 33, 37, 38, 39], "mrnn_imput": 27, "multi": [27, 31], "multipl": [22, 33, 37], "multivari": 31, "must": [23, 27, 32], "mutual": 24, "mvl": [27, 33], "n_call": [27, 32], "n_particl": [27, 32], "n_process": [27, 32], "n_random_start": [27, 32], "name": [22, 25, 28, 35], "nan": [23, 24, 26, 29, 30, 31, 33, 37], "narrow": 38, "nater": [33, 35, 37], "nativ": [23, 33], "native_cdrec": [19, 23], "native_stmvl": [19, 33], "ndarrai": [22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "nearest": [26, 27], "neg": 24, "neighbor": [26, 27], "net": [27, 31], "network": [27, 31], "neural": [27, 31], "neurosci": 38, "new": [27, 38], "newlin": 28, "non": [29, 30], "none": [22, 23, 25, 27, 28, 29, 30, 35, 37], "normal": [19, 28], "note": [22, 25, 26, 29, 30, 31, 33, 35, 37], "notimplementederror": 27, "np": [22, 29, 30, 37], "num_config": [27, 32], "num_iter": [27, 32], "number": [22, 23, 25, 26, 27, 28, 31, 32], "number_neighbor": 26, "numer": [26, 27], "numpi": [22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "object": [22, 24, 25, 27, 28, 32, 35], "offer": 38, "offset": [25, 28], "one": 28, "ones": 27, "onli": 28, "oper": [20, 21, 24, 34, 35], "optim": [19, 22, 27, 35, 38, 39], "optimal_param": 35, "option": [22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 37], "org": [23, 27], "organ": 22, "origin": [25, 27, 28, 35], "other": [20, 21, 24, 34, 35], "outlier": 24, "output": [22, 25, 26], "outsid": 35, "over": [22, 27], "overlap": 28, "p": [23, 27], "packag": [21, 38, 39], "param": [25, 27, 29, 30, 37], "paramet": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37], "parameter": 38, "particl": [27, 32], "particleswarm": [19, 32], "pass": 37, "path": [23, 25, 28, 35], "pattern": [22, 24, 25, 27, 28, 38], "patternsearch": [19, 27], "pearson": 24, "per": [25, 28], "percentag": [25, 28, 35], "perfect": 24, "perform": [22, 23, 24, 26, 27, 31, 32, 33], "person": [27, 32], "pi": 27, "pipelin": 22, "plot": [19, 22, 25, 28], "point": [27, 29, 30, 32], "posit": [24, 25], "potenti": [35, 38], "power": [27, 33], "pp": [26, 27, 31], "predefin": 28, "predict": [26, 27], "preserv": 24, "print": [19, 23, 25, 26, 28, 29, 30, 31, 33, 35, 37], "print_result": [19, 28], "prior": [27, 32], "process": [20, 21, 24, 25, 27, 28, 31, 32, 34, 35], "project": 35, "provid": [20, 21, 22, 24, 26, 27, 28, 32, 34, 35, 36, 38], "pso": [27, 32], "purpos": 28, "pycatch22": 25, "qualiti": 22, "quentin": [33, 35, 37], "queri": 35, "r": [27, 31], "rais": [27, 35], "random": [25, 27, 28, 32], "rang": [35, 38], "rank": [23, 27], "rate": [22, 23, 27, 31], "ratio": 25, "raw": [25, 28], "recomput": 35, "recov": [23, 26, 31, 33], "recov_data": [23, 24, 26, 27, 28, 29, 30, 31, 33, 37], "recoveri": [19, 23, 38, 39], "recurr": [27, 31], "reduct": [27, 32], "reduction_factor": [27, 32], "refer": [23, 26, 27, 31, 33], "refin": 25, "regress": [25, 26, 27], "relationship": [24, 33], "remov": 25, "replac": [27, 29, 30, 37], "report": 22, "repres": [23, 26, 29, 30, 31, 37], "reproduc": [25, 28], "research": [27, 33], "restrict": 28, "result": [22, 25, 28, 35], "return": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37], "rmse": [22, 24, 25, 27, 32], "robust": 24, "root": 24, "row": 22, "run": [22, 27], "runs_plots_scor": 22, "s10115": [23, 27], "same": 28, "save": [22, 25, 28, 35], "save_dir": 22, "save_optim": [19, 35], "save_path": 28, "scalabl": [23, 27], "schaar": [27, 31], "school": [27, 33], "scienc": [27, 33], "score": [19, 22, 24, 27, 32], "scores_list": 22, "search_path": [19, 35], "section": [22, 25, 28], "seed": [25, 28], "select": [22, 25, 27, 32], "self": [22, 27], "sensori": [27, 33], "separ": 28, "sequenc": [27, 31], "sequence_length": [27, 31], "seri": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "series_r": 28, "series_rang": 28, "set": [22, 24, 25, 26, 27, 28, 31], "set_nam": 35, "sh": 27, "shap": [25, 38], "shap_detail": 25, "shap_explain": [19, 25], "shap_valu": 25, "shape": 28, "share": [23, 24, 35], "shenzhen": [27, 33], "shift": 28, "should": [27, 38], "simpl": [29, 30, 37], "singl": 22, "size": [25, 27, 28, 33], "smaller": [23, 27], "smooth": [27, 33], "song": [26, 27], "soon": 27, "sourc": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37], "southwest": [27, 33], "space": 28, "spatial": [27, 33], "spatio": 27, "specif": [26, 27, 28, 32], "specifi": 25, "split": 25, "split_ratio": 25, "splitter": 25, "squar": 24, "st": [27, 33], "standard": [25, 28], "static": 27, "statist": [19, 27], "std_dev": 28, "stmvl": [19, 22, 25, 27, 38, 39], "stmvl_imput": 27, "stop": 23, "str": [22, 23, 25, 26, 27, 28, 32, 35], "straightforward": 38, "strategi": [32, 37], "stream": [27, 31], "string": 35, "structur": [31, 32], "subclass": 32, "submodul": [38, 39], "subpackag": [38, 39], "subplot": [22, 28], "success": [27, 32], "successivehalv": [19, 32], "summar": 22, "summari": 22, "sun": [26, 27], "support": [23, 28, 33, 37, 38], "swarm": 32, "syst": [23, 27], "system": 35, "t": [25, 27, 28, 33], "task": 27, "tbme": [27, 31], "techniqu": [28, 29, 30, 33, 37, 38], "technologi": [27, 33], "templat": 27, "tempor": [27, 31, 33], "term": 24, "test": [22, 25, 35], "text": 22, "than": [23, 24, 27], "them": [22, 27], "thesi": 35, "thi": [26, 27, 28, 29, 30, 31, 32, 33, 37], "threshold": 23, "through": 22, "tick": 22, "time": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 37], "timeseri": [19, 28], "titl": 35, "tmp": 25, "to_sav": 25, "toml": [25, 35], "tool": [19, 21, 22, 24, 36, 38, 39], "total": [26, 31], "train": [25, 27, 31], "transact": [27, 31], "tree": [26, 27], "true": [22, 23, 25, 26, 27, 28, 31, 33, 35], "truncat": 23, "truncation_rank": 23, "truth": [24, 27, 32], "try": [27, 32], "ts_1": 27, "tupl": [25, 27, 28, 32, 35], "two": 25, "txt": [22, 28], "type": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37], "uncontamin": [25, 28], "underli": 24, "unifi": 38, "uniqu": 27, "unit": 27, "univers": [27, 33, 35], "upper": 35, "us": [23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38], "user": [27, 35], "user_def": [22, 27], "util": [19, 21, 22, 24, 26, 34, 38, 39], "valid": [25, 27], "valu": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38], "valueerror": 35, "van": [27, 31], "variabl": 25, "variat": 27, "variou": [20, 21, 22, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 37, 38], "verbos": 25, "verifi": 35, "verification_limit": [19, 35], "version": 26, "view": [22, 28], "view_by_seri": 28, "visual": [22, 28], "vol": [27, 31], "w": [27, 31, 32], "waist": 38, "wang": [26, 27], "warn": 35, "weight": [24, 27, 32, 33], "well": 24, "where": [28, 29, 30, 31, 37], "whether": [23, 25, 26, 27, 28, 31], "which": [25, 27], "window": [27, 33], "window_s": [27, 33], "within": [31, 35], "without": [27, 28, 35], "work": 26, "x": [27, 33], "x_axi": 22, "x_dataset": 25, "x_inform": 25, "y": [26, 27, 33], "y_dataset": 25, "yi": [27, 33], "yoon": [27, 31], "you": 28, "z_score": 28, "zame": [27, 31], "zero": [27, 37], "zero_imput": [19, 27, 38, 39], "zeroimput": 27, "zhang": [26, 27, 33], "zheng": [27, 33]}, "titles": ["imputegap.algorithms", "imputegap.algorithms.cdrec", "imputegap.algorithms.iim", "imputegap.algorithms.mean_impute", "imputegap.algorithms.min_impute", "imputegap.algorithms.mrnn", "imputegap.algorithms.stmvl", "imputegap.algorithms.zero_impute", "imputegap.recovery.benchmark", "imputegap.recovery.benchmark", "imputegap.recovery.evaluation", "imputegap.recovery.explainer", "imputegap.recovery.imputation", "imputegap.recovery.manager", "imputegap.recovery.optimization", "imputegap.tools", "imputegap.tools.algorithm_parameters", "imputegap.tools.utils", "imputegap.wrapper", "imputegap package", "imputegap.tools.algorithm_parameters package", "Submodules", "imputegap.recovery.benchmark package", "imputegap.algorithms.cdrec package", "imputegap.recovery.evaluation package", "imputegap.recovery.explainer package", "imputegap.algorithms.iim package", "imputegap.recovery.imputation package", "imputegap.recovery.manager package", "imputegap.algorithms.mean_impute package", "imputegap.algorithms.min_impute package", "imputegap.algorithms.mrnn package", "imputegap.recovery.optimization package", "imputegap.algorithms.stmvl package", "imputegap.tools package", "imputegap.tools.utils package", "imputegap.wrapper package", "imputegap.algorithms.zero_impute package", "imputegap documentation", "imputegap"], "titleterms": {"algorithm": [0, 1, 2, 3, 4, 5, 6, 7, 23, 26, 29, 30, 31, 33, 37], "algorithm_paramet": [16, 20], "benchmark": [8, 9, 22], "cdrec": [1, 23], "content": [19, 25, 27, 28, 32, 36], "document": [20, 21, 22, 24, 34, 35, 38], "evalu": [10, 22, 24], "explain": [11, 25], "iim": [2, 26], "imput": [12, 27], "imputegap": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39], "manag": [13, 28], "mean_imput": [3, 29], "min_imput": [4, 30], "modul": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "mrnn": [5, 31], "optim": [14, 32], "packag": [19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "recoveri": [8, 9, 10, 11, 12, 13, 14, 22, 24, 25, 27, 28, 32], "stmvl": [6, 33], "subclass": 27, "submodul": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "subpackag": 19, "tool": [15, 16, 17, 20, 34, 35], "util": [17, 20, 35], "wrapper": [18, 36], "zero_imput": [7, 37]}})
\ No newline at end of file
diff --git a/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmark.rst.txt b/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmark.rst.txt
new file mode 100644
index 00000000..abb1b020
--- /dev/null
+++ b/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmark.rst.txt
@@ -0,0 +1,12 @@
+imputegap.recovery.benchmark
+============================
+
+.. automodule:: imputegap.recovery.benchmark
+
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+   
+      Benchmark
+   
\ No newline at end of file
diff --git a/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmarking.rst.txt b/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmarking.rst.txt
index 3d28962a..392ffa5e 100644
--- a/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmarking.rst.txt
+++ b/docs/generation/build/html/sources/_autosummary/imputegap.recovery.benchmarking.rst.txt
@@ -1,7 +1,7 @@
-imputegap.recovery.benchmarking
-===============================
+imputegap.recovery.benchmark
+============================
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
 
    
    .. rubric:: Classes
diff --git a/docs/generation/source/imputegap.benchmarking.rst b/docs/generation/build/html/sources/imputegap.benchmark.rst.txt
similarity index 55%
rename from docs/generation/source/imputegap.benchmarking.rst
rename to docs/generation/build/html/sources/imputegap.benchmark.rst.txt
index e9eba7b7..45410ed5 100644
--- a/docs/generation/source/imputegap.benchmarking.rst
+++ b/docs/generation/build/html/sources/imputegap.benchmark.rst.txt
@@ -1,7 +1,7 @@
-imputegap.recovery.benchmarking package
-=======================================
+imputegap.recovery.benchmark package
+====================================
 
-The `imputegap.recovery.benchmarking` package provides various utility functions and tools for test the library
+The `imputegap.recovery.benchmark` package provides various utility functions and tools for test the library
 
 Submodules
 ----------
@@ -15,7 +15,7 @@ Submodules
 Modules
 -------
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
    :members:
    :undoc-members:
    :show-inheritance:
@@ -26,7 +26,7 @@ Submodule Documentation
 imputegap.recovery.evaluation module
 ------------------------------------
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
    :members:
    :undoc-members:
    :show-inheritance:
diff --git a/docs/generation/build/html/sources/index.rst.txt b/docs/generation/build/html/sources/index.rst.txt
index 87b6bde7..95f2ddb6 100644
--- a/docs/generation/build/html/sources/index.rst.txt
+++ b/docs/generation/build/html/sources/index.rst.txt
@@ -17,7 +17,7 @@ The interface provides advanced imputation algorithms, construction of various m
    imputegap.recovery.optimization
    imputegap.recovery.explainer
    imputegap.recovery.evaluation
-   imputegap.recovery.benchmarking
+   imputegap.recovery.benchmark
    imputegap.algorithms.cdrec
    imputegap.algorithms.stmvl
    imputegap.algorithms.iim
diff --git a/docs/generation/source/_autosummary/imputegap.recovery.benchmark.rst b/docs/generation/source/_autosummary/imputegap.recovery.benchmark.rst
new file mode 100644
index 00000000..abb1b020
--- /dev/null
+++ b/docs/generation/source/_autosummary/imputegap.recovery.benchmark.rst
@@ -0,0 +1,12 @@
+imputegap.recovery.benchmark
+============================
+
+.. automodule:: imputegap.recovery.benchmark
+
+   
+   .. rubric:: Classes
+
+   .. autosummary::
+   
+      Benchmark
+   
\ No newline at end of file
diff --git a/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst b/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst
index 3d28962a..392ffa5e 100644
--- a/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst
+++ b/docs/generation/source/_autosummary/imputegap.recovery.benchmarking.rst
@@ -1,7 +1,7 @@
-imputegap.recovery.benchmarking
-===============================
+imputegap.recovery.benchmark
+============================
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
 
    
    .. rubric:: Classes
diff --git a/docs/generation/source/conf.py b/docs/generation/source/conf.py
index aa03688c..290e6e65 100644
--- a/docs/generation/source/conf.py
+++ b/docs/generation/source/conf.py
@@ -9,7 +9,7 @@
 import sys
 
 project = 'imputegap'
-copyright = '2024, Quentin Nater'
+copyright = '2025, Quentin Nater'
 author = 'Quentin Nater'
 
 
diff --git a/docs/generation/build/html/sources/imputegap.benchmarking.rst.txt b/docs/generation/source/imputegap.benchmark.rst
similarity index 55%
rename from docs/generation/build/html/sources/imputegap.benchmarking.rst.txt
rename to docs/generation/source/imputegap.benchmark.rst
index e9eba7b7..45410ed5 100644
--- a/docs/generation/build/html/sources/imputegap.benchmarking.rst.txt
+++ b/docs/generation/source/imputegap.benchmark.rst
@@ -1,7 +1,7 @@
-imputegap.recovery.benchmarking package
-=======================================
+imputegap.recovery.benchmark package
+====================================
 
-The `imputegap.recovery.benchmarking` package provides various utility functions and tools for test the library
+The `imputegap.recovery.benchmark` package provides various utility functions and tools for test the library
 
 Submodules
 ----------
@@ -15,7 +15,7 @@ Submodules
 Modules
 -------
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
    :members:
    :undoc-members:
    :show-inheritance:
@@ -26,7 +26,7 @@ Submodule Documentation
 imputegap.recovery.evaluation module
 ------------------------------------
 
-.. automodule:: imputegap.recovery.benchmarking
+.. automodule:: imputegap.recovery.benchmark
    :members:
    :undoc-members:
    :show-inheritance:
diff --git a/docs/generation/source/index.rst b/docs/generation/source/index.rst
index 87b6bde7..95f2ddb6 100644
--- a/docs/generation/source/index.rst
+++ b/docs/generation/source/index.rst
@@ -17,7 +17,7 @@ The interface provides advanced imputation algorithms, construction of various m
    imputegap.recovery.optimization
    imputegap.recovery.explainer
    imputegap.recovery.evaluation
-   imputegap.recovery.benchmarking
+   imputegap.recovery.benchmark
    imputegap.algorithms.cdrec
    imputegap.algorithms.stmvl
    imputegap.algorithms.iim
diff --git a/imputegap/assets/shap/chlorine_cdrec_shap_aggregate_plot.jpg b/imputegap/assets/shap/chlorine_cdrec_shap_aggregate_plot.jpg
deleted file mode 100644
index f20b29e4..00000000
Binary files a/imputegap/assets/shap/chlorine_cdrec_shap_aggregate_plot.jpg and /dev/null differ
diff --git a/imputegap/assets/shap/chlorine_cdrec_shap_plot.png b/imputegap/assets/shap/chlorine_cdrec_shap_plot.png
deleted file mode 100644
index c05c6622..00000000
Binary files a/imputegap/assets/shap/chlorine_cdrec_shap_plot.png and /dev/null differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Beeswarm.png b/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Beeswarm.png
new file mode 100644
index 00000000..cfcc0fa6
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Beeswarm.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Waterfall.png b/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Waterfall.png
new file mode 100644
index 00000000..f16a7ad9
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_DTL_Waterfall.png differ
diff --git a/imputegap/assets/shap/chlorine_cdrec_results.txt b/imputegap/assets/shap/eeg-alcohol_cdrec_results.txt
similarity index 70%
rename from imputegap/assets/shap/chlorine_cdrec_results.txt
rename to imputegap/assets/shap/eeg-alcohol_cdrec_results.txt
index 015b8375..389eb1bf 100644
--- a/imputegap/assets/shap/chlorine_cdrec_results.txt
+++ b/imputegap/assets/shap/eeg-alcohol_cdrec_results.txt
@@ -1,22 +1,22 @@
-Feature : 6     cdrec      with a score of 58.09      Geometry           Proportion of high incremental changes in the series              MD_hrv_classic_pnn40
-Feature : 5     cdrec      with a score of 9.13       Correlation        Time reversibility                                                CO_trev_1_num
-Feature : 2     cdrec      with a score of 6.2        Correlation        First 1/e crossing of the ACF                                     CO_f1ecac
-Feature : 15    cdrec      with a score of 5.34       Transformation     Power in the lowest 20% of frequencies                            SP_Summaries_welch_rect_area_5_1
-Feature : 10    cdrec      with a score of 4.95       Geometry           Goodness of exponential fit to embedding distance distribution    CO_Embed2_Dist_tau_d_expfit_meandiff
-Feature : 1     cdrec      with a score of 3.76       Geometry           10-bin histogram mode                                             DN_HistogramMode_10
-Feature : 12    cdrec      with a score of 3.39       Correlation        Change in autocorrelation timescale after incremental differencing FC_LocalSimple_mean1_tauresrat
-Feature : 0     cdrec      with a score of 2.41       Geometry           5-bin histogram mode                                              DN_HistogramMode_5
-Feature : 17    cdrec      with a score of 2.32       Trend              Entropy of successive pairs in symbolized series                  SB_MotifThree_quantile_hh
-Feature : 21    cdrec      with a score of 2.24       Trend              Error of 3-point rolling mean forecast                            FC_LocalSimple_mean3_stderr
-Feature : 4     cdrec      with a score of 1.42       Correlation        Histogram-based automutual information (lag 2, 5 bins)            CO_HistogramAMI_even_2_5
-Feature : 8     cdrec      with a score of 0.38       Geometry           Transition matrix column variance                                 SB_TransitionMatrix_3ac_sumdiagcov
-Feature : 13    cdrec      with a score of 0.36       Geometry           Positive outlier timing                                           DN_OutlierInclude_p_001_mdrmd
-Feature : 14    cdrec      with a score of 0.01       Geometry           Negative outlier timing                                           DN_OutlierInclude_n_001_mdrmd
+Feature : 15    cdrec      with a score of 37.05      Transformation     Power in the lowest 20% of frequencies                            SP_Summaries_welch_rect_area_5_1
+Feature : 10    cdrec      with a score of 28.93      Geometry           Goodness of exponential fit to embedding distance distribution    CO_Embed2_Dist_tau_d_expfit_meandiff
+Feature : 2     cdrec      with a score of 12.2       Correlation        First 1/e crossing of the ACF                                     CO_f1ecac
+Feature : 21    cdrec      with a score of 4.92       Trend              Error of 3-point rolling mean forecast                            FC_LocalSimple_mean3_stderr
+Feature : 14    cdrec      with a score of 3.25       Geometry           Negative outlier timing                                           DN_OutlierInclude_n_001_mdrmd
+Feature : 1     cdrec      with a score of 3.09       Geometry           10-bin histogram mode                                             DN_HistogramMode_10
+Feature : 0     cdrec      with a score of 2.73       Geometry           5-bin histogram mode                                              DN_HistogramMode_5
+Feature : 5     cdrec      with a score of 2.56       Correlation        Time reversibility                                                CO_trev_1_num
+Feature : 17    cdrec      with a score of 1.36       Trend              Entropy of successive pairs in symbolized series                  SB_MotifThree_quantile_hh
+Feature : 6     cdrec      with a score of 1.31       Geometry           Proportion of high incremental changes in the series              MD_hrv_classic_pnn40
+Feature : 20    cdrec      with a score of 0.77       Transformation     Centroid frequency                                                SP_Summaries_welch_rect_centroid
+Feature : 4     cdrec      with a score of 0.7        Correlation        Histogram-based automutual information (lag 2, 5 bins)            CO_HistogramAMI_even_2_5
+Feature : 18    cdrec      with a score of 0.51       Geometry           Rescaled range fluctuation analysis (low-scale scaling)           SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1
+Feature : 13    cdrec      with a score of 0.43       Geometry           Positive outlier timing                                           DN_OutlierInclude_p_001_mdrmd
+Feature : 8     cdrec      with a score of 0.18       Geometry           Transition matrix column variance                                 SB_TransitionMatrix_3ac_sumdiagcov
+Feature : 7     cdrec      with a score of 0.02       Geometry           Longest stretch of above-mean values                              SB_BinaryStats_mean_longstretch1
 Feature : 3     cdrec      with a score of 0.0        Correlation        First minimum of the ACF                                          CO_FirstMin_ac
-Feature : 7     cdrec      with a score of 0.0        Geometry           Longest stretch of above-mean values                              SB_BinaryStats_mean_longstretch1
 Feature : 9     cdrec      with a score of 0.0        Trend              Wangs periodicity metric                                          PD_PeriodicityWang_th0_01
 Feature : 11    cdrec      with a score of 0.0        Correlation        First minimum of the AMI function                                 IN_AutoMutualInfoStats_40_gaussian_fmmi
+Feature : 12    cdrec      with a score of 0.0        Correlation        Change in autocorrelation timescale after incremental differencing FC_LocalSimple_mean1_tauresrat
 Feature : 16    cdrec      with a score of 0.0        Geometry           Longest stretch of decreasing values                              SB_BinaryStats_diff_longstretch0
-Feature : 18    cdrec      with a score of 0.0        Geometry           Rescaled range fluctuation analysis (low-scale scaling)           SC_FluctAnal_2_rsrangefit_50_1_logi_prop_r1
 Feature : 19    cdrec      with a score of 0.0        Geometry           Detrended fluctuation analysis (low-scale scaling)                SC_FluctAnal_2_dfa_50_1_2_logi_prop_r1
-Feature : 20    cdrec      with a score of 0.0        Transformation     Centroid frequency                                                SP_Summaries_welch_rect_centroid
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_plot.png
new file mode 100644
index 00000000..fb6df726
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_reverse_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_reverse_plot.png
new file mode 100644
index 00000000..272b7efb
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_aggregate_reverse_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_correlation_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_correlation_plot.png
new file mode 100644
index 00000000..ecd3dcd2
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_correlation_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_geometry_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_geometry_plot.png
new file mode 100644
index 00000000..15d85021
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_geometry_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_plot.png
new file mode 100644
index 00000000..969daeff
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_reverse_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_reverse_plot.png
new file mode 100644
index 00000000..f7f47270
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_reverse_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_transformation_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_transformation_plot.png
new file mode 100644
index 00000000..66e25ab8
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_transformation_plot.png differ
diff --git a/imputegap/assets/shap/eeg-alcohol_cdrec_shap_trend_plot.png b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_trend_plot.png
new file mode 100644
index 00000000..9f90bb7f
Binary files /dev/null and b/imputegap/assets/shap/eeg-alcohol_cdrec_shap_trend_plot.png differ
diff --git a/imputegap/recovery/README.md b/imputegap/recovery/README.md
index 96570b24..f6b7ca1f 100644
--- a/imputegap/recovery/README.md
+++ b/imputegap/recovery/README.md
@@ -56,7 +56,9 @@ This pattern uses random number generator with fixed seed and will produce the s
 <br />
 
 ### MISSING PERCENTAGE
-**MISSING PERCENTAGE** selects of percent of series to contaminate from the first to the last with a desired percentage of missing value to remove.
+**MISSING PERCENTAGE** selects a percentage of time series to contaminate, applying the desired percentage of missing values from the beginning to the end of each selected series.
+
+
 
 <table>
     <tbody>Definition</tbody>
@@ -82,7 +84,84 @@ This pattern uses random number generator with fixed seed and will produce the s
 
 
 ### BLACKOUT
-The **BLACKOUT** pattern selects all time series to introduce missing values. It removes a set percentage of data points from all series, creating gaps for further analysis.
+The **BLACKOUT** pattern introduces missing values across all time series by removing a specified percentage of data points from each series, creating uniform gaps for analysis.
+
+
+<table>
+    <tbody>Definition</tbody>
+    <tr>
+        <td>N</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>M</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>R</td><td>1 - 100%</td>
+    </tr>
+    <tr>
+        <td>S</td><td>100%</td>
+    </tr>
+    <tr>
+        <td>W</td><td>(N-P) * R</td>
+    </tr>
+    <tr>
+        <td>B</td><td>R</td>
+    </tr>
+ </table><br />
+
+
+### GAUSSIAN
+The **GAUSSIAN** pattern introduces missing values into a percentage of time series, determined based on probabilities derived from a Gaussian distribution.
+
+<table>
+    <tbody>Definition</tbody>
+    <tr>
+        <td>N</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>M</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>R</td><td>1 - 100%</td>
+    </tr>
+    <tr>
+        <td>S</td><td>100%</td>
+    </tr>
+    <tr>
+        <td>W</td><td>(N-P) * R * probability</td>
+    </tr>
+    <tr>
+        <td>B</td><td>R</td>
+    </tr>
+ </table><br />
+
+### DISJOINT
+The **DISJOINT** pattern introduces missing values into time series by selecting segments with non-overlapping intervals. This process continues until either the missing rate limit is reached or the series length is exhausted.
+
+<table>
+    <tbody>Definition</tbody>
+    <tr>
+        <td>N</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>M</td><td>MAX</td>
+    </tr>
+    <tr>
+        <td>R</td><td>1 - 100%</td>
+    </tr>
+    <tr>
+        <td>S</td><td>100%</td>
+    </tr>
+    <tr>
+        <td>W</td><td>(N-P) * R</td>
+    </tr>
+    <tr>
+        <td>B</td><td>R</td>
+    </tr>
+ </table><br />
+
+### OVERLAP
+The **OVERLAP** pattern selects time series segments for introducing missing values by using a disjoint interval that is shifted by a specified percentage. This process continues until either the missing rate limit is reached or the series length is exhausted.
 
 
 <table>
diff --git a/imputegap/recovery/__pycache__/benchmark.cpython-312.pyc b/imputegap/recovery/__pycache__/benchmark.cpython-312.pyc
index dabad11f..5d01e3f9 100644
Binary files a/imputegap/recovery/__pycache__/benchmark.cpython-312.pyc and b/imputegap/recovery/__pycache__/benchmark.cpython-312.pyc differ
diff --git a/imputegap/recovery/__pycache__/explainer.cpython-312.pyc b/imputegap/recovery/__pycache__/explainer.cpython-312.pyc
index 41b15cda..17a3ada9 100644
Binary files a/imputegap/recovery/__pycache__/explainer.cpython-312.pyc and b/imputegap/recovery/__pycache__/explainer.cpython-312.pyc differ
diff --git a/imputegap/recovery/__pycache__/manager.cpython-312.pyc b/imputegap/recovery/__pycache__/manager.cpython-312.pyc
index ad7c579b..322d4cfe 100644
Binary files a/imputegap/recovery/__pycache__/manager.cpython-312.pyc and b/imputegap/recovery/__pycache__/manager.cpython-312.pyc differ
diff --git a/imputegap/recovery/benchmark.py b/imputegap/recovery/benchmark.py
index bbf2f802..f0ff0205 100644
--- a/imputegap/recovery/benchmark.py
+++ b/imputegap/recovery/benchmark.py
@@ -21,15 +21,19 @@ class Benchmark:
     -------
     _config_optimization():
         Configure and execute optimization for a selected imputation algorithm and contamination pattern.
+    average_runs_by_names(self, data):
+        Average the results of all runs depending on the dataset.
     avg_results():
         Calculate average metrics (e.g., RMSE) across multiple datasets and algorithm runs.
-    generate_matrix():
+    generate_heatmap():
         Generate and save a heatmap visualization of RMSE scores for datasets and algorithms.
-    generate_reports():
+    generate_reports_txt():
         Create detailed text-based reports summarizing metrics and timing results for all evaluations.
+    generate_reports_excel():
+        Create detailed excel-based reports summarizing metrics and timing results for all evaluations.
     generate_plots():
         Visualize metrics (e.g., RMSE, MAE) and timing (e.g., imputation, optimization) across patterns and datasets.
-    comprehensive_evaluation():
+    eval():
         Perform a complete benchmarking pipeline, including contamination, imputation, evaluation, and reporting.
 
     Example
diff --git a/imputegap/recovery/explainer.py b/imputegap/recovery/explainer.py
index a17e82fd..3f142ebe 100644
--- a/imputegap/recovery/explainer.py
+++ b/imputegap/recovery/explainer.py
@@ -23,7 +23,7 @@ class Explainer:
     load_configuration(file_path=None)
         Load categories and features from a TOML file.
 
-    extract_features(data, features_categories, features_list, do_catch24=True)
+    extractor_pycatch(data, features_categories, features_list, do_catch24=True)
         Extract features from time series data using pycatch22.
 
     print(shap_values, shap_details=None)
@@ -35,8 +35,8 @@ class Explainer:
     execute_shap_model(x_dataset, x_information, y_dataset, file, algorithm, splitter=10, display=False, verbose=False)
         Launch the SHAP model to explain the dataset features.
 
-    shap_explainer(input_data, algorithm="cdrec", params=None, incomp_data="mcar", missing_rate=0.4,
-                   block_size=10, offset=0.1, seed=True, limitation=15, splitter=0,
+    shap_explainer(input_data, algorithm="cdrec", params=None, extractor="pycatch22", incomp_data="mcar",
+                   missing_rate=0.4, block_size=10, offset=0.1, seed=True, limitation=15, splitter=0,
                    file_name="ts", display=False, verbose=False)
         Handle parameters and set variables to launch the SHAP model.
 
@@ -72,7 +72,7 @@ def load_configuration(file_path=None):
         return categories, features
 
 
-    def extract_features(data, features_categories, features_list, do_catch24=True):
+    def extractor_pycatch(data, features_categories, features_list, do_catch24=True):
         """
         Extract features from time series data using pycatch22.
 
@@ -150,15 +150,6 @@ def print(shap_values, shap_details=None):
         -------
         None
         """
-
-        #if shap_details is not None:
-            #print("\n\nx_data (with", len(shap_details), "elements) : ")
-            #for i, (input, _) in enumerate(shap_details):
-            #    print("\tFEATURES VALUES", i, "(", len(input), ") : ", *input)
-            #print("\ny_data (with", len(shap_details), "elements) : ")
-            #for i, (_, output) in enumerate(shap_details):
-            #    print(f"\tRMSE SERIES {i:<5} : {output:<15}")
-
         print("\n\nSHAP Results details : ")
         for (x, algo, rate, description, feature, category, mean_features) in shap_values:
             print(f"\tFeature : {x:<5} {algo:<10} with a score of {rate:<10} {category:<18} {description:<75} {feature}\n")
@@ -319,11 +310,13 @@ def execute_shap_model(x_dataset, x_information, y_dataset, file, algorithm, spl
         shap.plots.waterfall(shval_x[0], show=display)
         alpha = os.path.join(path_file + file + "_" + algorithm + "_DTL_Waterfall.png")
         plt.title("SHAP Waterfall Results")
+        fig = plt.gcf()  # Get the current figure created by SHAP
+        fig.set_size_inches(20, 10)  # Ensure the size is correct
         plt.savefig(alpha)
         plt.close()
         alphas.append(alpha)
 
-        shap.plots.beeswarm(shval_x, show=display)
+        shap.plots.beeswarm(shval_x, show=display, plot_size=(22, 10))
         alpha = os.path.join(path_file + file + "_" + algorithm + "_DTL_Beeswarm.png")
         plt.title("SHAP Beeswarm Results")
         plt.savefig(alpha)
@@ -459,7 +452,7 @@ def execute_shap_model(x_dataset, x_information, y_dataset, file, algorithm, spl
         total_weights_for_all_algorithms = np.append(total_weights_for_all_algorithms, total_weights_percent)
 
         for alpha in alphas:
-            print("\n\n\t\t\tplot has been saved : ", alpha)
+            print("\n\n\tplot has been saved : ", alpha)
 
         results_shap = Explainer.convert_results(total_weights_for_all_algorithms, file, algorithm, x_descriptions,
                                                  x_features, x_categories, mean_features,
@@ -467,7 +460,7 @@ def execute_shap_model(x_dataset, x_information, y_dataset, file, algorithm, spl
 
         return results_shap
 
-    def shap_explainer(input_data, algorithm="cdrec", params=None, pattern="mcar", missing_rate=0.4,
+    def shap_explainer(input_data, algorithm="cdrec", params=None, extractor="pycatch22", pattern="mcar", missing_rate=0.4,
                        block_size=10, offset=0.1, seed=True, limit_ratio=1, split_ratio=0.6,
                        file_name="ts", display=False, verbose=False):
         """
@@ -483,6 +476,8 @@ def shap_explainer(input_data, algorithm="cdrec", params=None, pattern="mcar", m
             Parameters for the algorithm.
         pattern : str, optional
             Contamination pattern to apply (default is 'mcar').
+        extractor : str, optional
+            Extractor use to get the features of the data (default is 'pycatch22').
         missing_rate : float, optional
             Percentage of missing values per series (default is 0.4).
         block_size : int, optional
@@ -568,8 +563,11 @@ def shap_explainer(input_data, algorithm="cdrec", params=None, pattern="mcar", m
             input_data_matrices.append(input_data)
             obfuscated_matrices.append(incomp_data)
 
-            catch_fct, descriptions = Explainer.extract_features(np.array(incomp_data), categories, features, False)
-            extracted_features = np.array(list(catch_fct.values()))
+            if extractor == "pycatch22":
+                catch_fct, descriptions = Explainer.extractor_pycatch(np.array(incomp_data), categories, features, False)
+                extracted_features = np.array(list(catch_fct.values()))
+            else:
+                catch_fct, descriptions, extracted_features = None, None, None
 
             input_params.append(extracted_features)
             input_params_full.append(descriptions)
diff --git a/imputegap/recovery/manager.py b/imputegap/recovery/manager.py
index 3a431c70..e152a73a 100644
--- a/imputegap/recovery/manager.py
+++ b/imputegap/recovery/manager.py
@@ -460,6 +460,15 @@ class Contamination:
 
         blackout(ts, missing_rate=0.2, offset=0.1) :
             Apply blackout contamination to the time series data.
+
+        gaussian(input_data, series_rate=0.2, missing_rate=0.2, std_dev=0.2, offset=0.1, seed=True):
+            Apply Gaussian contamination to the time series data.
+
+        def disjoint(input_data, missing_rate=0.1, limit=1, offset=0.1):
+            Apply Disjoint contamination to the time series data.
+
+        def overlap(input_data, missing_rate=0.2, limit=1, shift=0.05, offset=0.1,):
+            Apply Overlapping contamination to the time series data.
         """
 
         def mcar(input_data, series_rate=0.2, missing_rate=0.2, block_size=10, offset=0.1, seed=True, explainer=False):
@@ -616,8 +625,7 @@ def blackout(input_data, missing_rate=0.2, offset=0.1):
             numpy.ndarray
                 The contaminated time series data.
             """
-            return TimeSeries.Contamination.missing_percentage(input_data, series_rate=1, missing_rate=missing_rate,
-                                                               offset=offset)
+            return TimeSeries.Contamination.missing_percentage(input_data, series_rate=1, missing_rate=missing_rate, offset=offset)
 
         def gaussian(input_data, series_rate=0.2, missing_rate=0.2, std_dev=0.2, offset=0.1, seed=True):
             """
@@ -689,3 +697,114 @@ def gaussian(input_data, series_rate=0.2, missing_rate=0.2, std_dev=0.2, offset=
                 ts_contaminated[S, missing_indices] = np.nan
 
             return ts_contaminated
+
+        def disjoint(input_data, missing_rate=0.1, limit=1, offset=0.1):
+            """
+            Apply disjoint contamination to the time series data.
+
+            Parameters
+            ----------
+            input_data : numpy.ndarray
+                The time series dataset to contaminate.
+            missing_rate : float, optional
+                Percentage of missing values per series (default is 0.1).
+            limit : float, optional
+                Percentage expressing the limit index of the end of the contamination (default is 1: all length).
+            offset : float, optional
+                Size of the uncontaminated section at the beginning of the series (default is 0.1).
+
+            Returns
+            -------
+            numpy.ndarray
+                The contaminated time series data.
+            """
+            ts_contaminated = input_data.copy()
+            M, N = ts_contaminated.shape
+
+            missing_rate = utils.verification_limitation(missing_rate)
+            offset = utils.verification_limitation(offset)
+
+            print("\n\nMISSING PERCENTAGE contamination has been called with :"
+                  "\n\ta missing rate of ", missing_rate * 100, "%",
+                  "\n\ta starting position at ", offset,
+                  "\n\tshape of the set ", ts_contaminated.shape, "\n\n")
+
+            S = 0
+            X = int(len(ts_contaminated[0]) * offset) # current index with offset
+            final_limit = int(N*limit)-1
+
+            while S < M:
+                N = len(ts_contaminated[S])  # number of values in the series
+                P = int(N * offset)  # values to protect in the beginning of the series
+                W = int((N - P) * missing_rate)  # number of data to remove
+                L = X + W  # new limit
+
+                for to_remove in range(X, L):
+                    index = P + to_remove
+                    ts_contaminated[S, index] = np.nan
+
+                    if index >= final_limit:  # reach the limitation
+                        return ts_contaminated
+
+                X = L + 1
+                S = S + 1
+
+            return ts_contaminated
+
+        def overlap(input_data, missing_rate=0.2, limit=1, shift=0.05, offset=0.1,):
+            """
+            Apply overlap contamination to the time series data.
+
+            Parameters
+            ----------
+            input_data : numpy.ndarray
+                The time series dataset to contaminate.
+            missing_rate : float, optional
+                Percentage of missing values per series (default is 0.2).
+            limit : float, optional
+                Percentage expressing the limit index of the end of the contamination (default is 1: all length).
+            shift : float, optional
+                Percentage of shift inside each the last disjoint contamination.
+            offset : float, optional
+                Size of the uncontaminated section at the beginning of the series (default is 0.1).
+
+            Returns
+            -------
+            numpy.ndarray
+                The contaminated time series data.
+            """
+            ts_contaminated = input_data.copy()
+            M, N = ts_contaminated.shape
+
+            missing_rate = utils.verification_limitation(missing_rate)
+            offset = utils.verification_limitation(offset)
+
+            print("\n\nMISSING PERCENTAGE contamination has been called with :"
+                  "\n\ta missing rate of ", missing_rate * 100, "%",
+                  "\n\ta starting position at ", offset,
+                  "\n\ta shift overlap of ", shift * 100, "%",
+                  "\n\tshape of the set ", ts_contaminated.shape, "\n\n")
+
+            S = 0
+            X = int(len(ts_contaminated[0]) * offset)  # current index with offset
+            X = X + int(X * shift)  # counter first shift
+            final_limit = int(N * limit) - 1
+
+            while S < M:
+                N = len(ts_contaminated[S])  # number of values in the series
+                P = int(N * offset)  # values to protect in the beginning of the series
+                W = int((N - P) * missing_rate)  # number of data to remove
+                X = X - int(X * shift)
+                L = X + W  # new limit
+
+                for to_remove in range(X, L):
+                    index = P + to_remove
+                    ts_contaminated[S, index] = np.nan
+
+                    if index >= final_limit:  # reach the limitation
+                        return ts_contaminated
+
+                X = L + 1
+                S = S + 1
+
+            return ts_contaminated
diff --git a/imputegap/runner_contamination.py b/imputegap/runner_contamination.py
index 8b1d8be9..b040bd7d 100644
--- a/imputegap/runner_contamination.py
+++ b/imputegap/runner_contamination.py
@@ -13,4 +13,4 @@
 
 # [OPTIONAL] you can plot your raw data / print the contamination
 ts_1.print(limit_timestamps=12, limit_series=7)
-ts_1.plot(ts_1.data, incomp_data, max_series=9, subplot=True, save_path="./assets")
+ts_1.plot(ts_1.data, incomp_data, max_series=9, subplot=True, save_path="./imputegap/assets")
diff --git a/imputegap/runner_datasets.py b/imputegap/runner_datasets.py
index 2302e223..d92d2aba 100644
--- a/imputegap/runner_datasets.py
+++ b/imputegap/runner_datasets.py
@@ -39,7 +39,7 @@
     data_n.plot(input_data=data_n.data, save_path="./dataset/docs/" + dataset + "", display=False)
 
     categories, features = Explainer.load_configuration()
-    characteristics, descriptions = Explainer.extract_features(data=data_n.data, features_categories=categories, features_list=features, do_catch24=False)
+    characteristics, descriptions = Explainer.extractor_pycatch(data=data_n.data, features_categories=categories, features_list=features, do_catch24=False)
 
     p = "./dataset/docs/"+dataset+"/features_"+dataset+".txt"
     with open(p, 'w') as f:
diff --git a/imputegap/runner_explainer.py b/imputegap/runner_explainer.py
index f99c0d7f..c7b9ab98 100644
--- a/imputegap/runner_explainer.py
+++ b/imputegap/runner_explainer.py
@@ -6,15 +6,10 @@
 ts_1 = TimeSeries()
 
 # 2. load the timeseries from file or from the code
-ts_1.load_timeseries(utils.search_path("chlorine"))
+ts_1.load_timeseries(utils.search_path("eeg-alcohol"))
 
 # 3. call the explanation of your dataset with a specific algorithm to gain insight on the Imputation results
-shap_values, shap_details = Explainer.shap_explainer(input_data=ts_1.data,
-                                                     missing_rate=0.25,
-                                                     limit_ratio=1,
-                                                     split_ratio=0.7,
-                                                     file_name="chlorine",
-                                                     algorithm="cdrec")
+shap_values, shap_details = Explainer.shap_explainer(input_data=ts_1.data, extractor="pycatch22", pattern="mcar", missing_rate=0.25, limit_ratio=1, split_ratio=0.7, file_name="eeg-alcohol", algorithm="cdrec")
 
 # [OPTIONAL] print the results with the impact of each feature.
 Explainer.print(shap_values, shap_details)
\ No newline at end of file
diff --git a/imputegap/runner_imputation.py b/imputegap/runner_imputation.py
index 90dfd9c8..59edc3f2 100644
--- a/imputegap/runner_imputation.py
+++ b/imputegap/runner_imputation.py
@@ -32,4 +32,4 @@
 
 # 6. display the results
 ts_3.print_results(cdrec.metrics, algorithm="cdrec")
-ts_3.plot(input_data=ts_1.data, incomp_data=ts_2.data, recov_data=ts_3.data, max_series=9, subplot=True, save_path="./assets")
+ts_3.plot(input_data=ts_1.data, incomp_data=ts_2.data, recov_data=ts_3.data, max_series=9, subplot=True, save_path="./imputegap/assets")
diff --git a/imputegap/runner_loading.py b/imputegap/runner_loading.py
index 9df0ee92..7856ad0b 100644
--- a/imputegap/runner_loading.py
+++ b/imputegap/runner_loading.py
@@ -5,7 +5,7 @@
 ts_1 = TimeSeries()
 
 # 2. load the timeseries from file or from the code
-ts_1.load_timeseries(utils.search_path("fmri-stoptask"), max_series=5, max_values=15)
+ts_1.load_timeseries(utils.search_path("eeg-alcohol"), max_series=5, max_values=15)
 ts_1.normalize(normalizer="z_score")
 
 # [OPTIONAL] you can plot your raw data / print the information
diff --git a/imputegap/runner_optimization.py b/imputegap/runner_optimization.py
index e0f25c43..0c62c4b3 100644
--- a/imputegap/runner_optimization.py
+++ b/imputegap/runner_optimization.py
@@ -21,7 +21,7 @@
 
 # 6. display the results
 ts_1.print_results(cdrec.metrics)
-ts_1.plot(input_data=ts_1.data, incomp_data=miss_matrix, recov_data=cdrec.recov_data, max_series=1, save_path="./assets", display=True)
+ts_1.plot(input_data=ts_1.data, incomp_data=miss_matrix, recov_data=cdrec.recov_data, max_series=9, subplot=True, save_path="./imputegap/assets", display=True)
 
 # 7. save hyperparameters
 utils.save_optimization(optimal_params=cdrec.parameters, algorithm="cdrec", dataset="eeg", optimizer="t")
\ No newline at end of file