@@ -184,13 +184,18 @@ def _build_model(self) -> pd.DataFrame:
184
184
"selected_model_params" : model .selected_model_params_ ,
185
185
}
186
186
except Exception as e :
187
- self . errors_dict [ s_id ] = {
187
+ new_error = {
188
188
"model_name" : self .spec .model ,
189
189
"error" : str (e ),
190
190
"error_trace" : traceback .format_exc (),
191
191
}
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 ())
194
199
195
200
logger .debug ("===========Forecast Generated===========" )
196
201
@@ -257,7 +262,9 @@ def _generate_report(self):
257
262
)
258
263
259
264
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
+ },
261
268
inplace = True ,
262
269
)
263
270
@@ -312,7 +319,7 @@ def _generate_report(self):
312
319
local_explanation_section ,
313
320
]
314
321
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 } ." )
316
323
logger .debug (f"Full Traceback: { traceback .format_exc ()} " )
317
324
318
325
model_description = rc .Text (
@@ -462,14 +469,27 @@ def explain_model(self):
462
469
index = "row" , columns = "Feature" , values = "Attribution"
463
470
)
464
471
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
+ )
466
477
# Store the explanations in the local_explanation dictionary
467
478
self .local_explanation [s_id ] = explanations_df
468
479
469
480
self .global_explanation [s_id ] = dict (
470
481
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
+ ),
473
493
)
474
494
)
475
495
else :
@@ -478,7 +498,9 @@ def explain_model(self):
478
498
except Exception as e :
479
499
if s_id in self .errors_dict :
480
500
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
+ )
482
504
else :
483
505
self .errors_dict [s_id ] = {
484
506
"model_name" : self .spec .model ,
0 commit comments