@@ -184,13 +184,18 @@ def _build_model(self) -> pd.DataFrame:
184184 "selected_model_params" : model .selected_model_params_ ,
185185 }
186186 except Exception as e :
187- self . errors_dict [ s_id ] = {
187+ new_error = {
188188 "model_name" : self .spec .model ,
189189 "error" : str (e ),
190190 "error_trace" : traceback .format_exc (),
191191 }
192- logger .warn (f"Encountered Error: { e } . Skipping." )
193- logger .warn (traceback .format_exc ())
192+ if s_id in self .errors_dict :
193+ self .errors_dict [s_id ]["model_fitting" ] = new_error
194+ else :
195+ self .errors_dict [s_id ] = {"model_fitting" : new_error }
196+ logger .warning (f"Encountered Error: { e } . Skipping." )
197+ logger .warning (f"self.errors_dict[s_id]: { self .errors_dict [s_id ]} " )
198+ logger .warning (traceback .format_exc ())
194199
195200 logger .debug ("===========Forecast Generated===========" )
196201
@@ -257,7 +262,9 @@ def _generate_report(self):
257262 )
258263
259264 self .formatted_global_explanation .rename (
260- columns = {self .spec .datetime_column .name : ForecastOutputColumns .DATE },
265+ columns = {
266+ self .spec .datetime_column .name : ForecastOutputColumns .DATE
267+ },
261268 inplace = True ,
262269 )
263270
@@ -312,7 +319,7 @@ def _generate_report(self):
312319 local_explanation_section ,
313320 ]
314321 except Exception as e :
315- logger .warn (f"Failed to generate Explanations with error: { e } ." )
322+ logger .warning (f"Failed to generate Explanations with error: { e } ." )
316323 logger .debug (f"Full Traceback: { traceback .format_exc ()} " )
317324
318325 model_description = rc .Text (
@@ -462,14 +469,27 @@ def explain_model(self):
462469 index = "row" , columns = "Feature" , values = "Attribution"
463470 )
464471 explanations_df = explanations_df .reset_index (drop = True )
465-
472+ explanations_df [ForecastOutputColumns .DATE ] = (
473+ self .datasets .get_horizon_at_series (
474+ s_id = s_id
475+ )[self .spec .datetime_column .name ].reset_index (drop = True )
476+ )
466477 # Store the explanations in the local_explanation dictionary
467478 self .local_explanation [s_id ] = explanations_df
468479
469480 self .global_explanation [s_id ] = dict (
470481 zip (
471- self .local_explanation [s_id ].columns ,
472- np .nanmean (np .abs (self .local_explanation [s_id ]), axis = 0 ),
482+ self .local_explanation [s_id ]
483+ .drop (ForecastOutputColumns .DATE , axis = 1 )
484+ .columns ,
485+ np .nanmean (
486+ np .abs (
487+ self .local_explanation [s_id ].drop (
488+ ForecastOutputColumns .DATE , axis = 1
489+ )
490+ ),
491+ axis = 0 ,
492+ ),
473493 )
474494 )
475495 else :
@@ -478,7 +498,9 @@ def explain_model(self):
478498 except Exception as e :
479499 if s_id in self .errors_dict :
480500 self .errors_dict [s_id ]["explainer_error" ] = str (e )
481- self .errors_dict [s_id ]["explainer_error_trace" ] = traceback .format_exc ()
501+ self .errors_dict [s_id ]["explainer_error_trace" ] = (
502+ traceback .format_exc ()
503+ )
482504 else :
483505 self .errors_dict [s_id ] = {
484506 "model_name" : self .spec .model ,
0 commit comments