Source code for library.phases.runners.modelling.utils.states.modelling_runner_states_post


from library.phases.runners.modelling.utils.states.modelling_runner_states_base import ModellingRunnerStates
from library.pipeline.pipeline_manager import PipelineManager

           
[docs] class PostTuningRunner(ModellingRunnerStates): def __init__(self, pipeline_manager: PipelineManager, save_plots: bool = False, save_path: str = None): super().__init__(pipeline_manager, save_plots, save_path) def _general_analysis(self): # Cross model comparison self.pipeline_manager.pipelines_analysis.plot_cross_model_comparison( save_plots=self.save_plots, save_path=self.save_path) # Time based model performance metrics_df = self.pipeline_manager.pipelines_analysis.plot_results_df(metrics=self.pipeline_manager.variables["modelling_runner"]["model_assesment"]["results_df_metrics"], save_plots=self.save_plots, save_path=self.save_path) # Results summary self.pipeline_manager.pipelines_analysis.plot_results_summary(training_metric=self.pipeline_manager.variables["modelling_runner"]["model_assesment"]["results_summary"]["training_metric"], performance_metric=self.pipeline_manager.variables["modelling_runner"]["model_assesment"]["results_summary"]["performance_metric"], save_plots=self.save_plots, save_path=self.save_path) # Intra model comparison self.pipeline_manager.pipelines_analysis.plot_intra_model_comparison( save_plots=self.save_plots, save_path=self.save_path) # Residual analyisis residuals, confusion_matrices = self.pipeline_manager.pipelines_analysis.plot_confusion_matrix(save_plots=self.save_plots, save_path=self.save_path) return metrics_df.to_dict(), residuals, confusion_matrices
[docs] def run(self): print("Post tuning runner") best_model, best_score = self.pipeline_manager.select_best_performing_model(metric=self.pipeline_manager.variables["modelling_runner"]["model_assesment"]["best_model_selection_metric"]) self.pipeline_manager.fit_final_models() self.pipeline_manager.evaluate_store_final_models() self.pipeline_manager.pipeline_state = "post" general_analysis_results = self._general_analysis() return best_model, best_score, general_analysis_results