SIENTIAPDE-1430: Refactor static threshold calculation logic and enhance test coverage

This commit is contained in:
Bruno Domingues
2025-12-19 16:19:10 -03:00
parent 06571011f2
commit df6bf1daba
4 changed files with 118 additions and 9 deletions

View File

@@ -205,12 +205,12 @@ class ModelRepository:
self.model_serving.log_param('nan_treatment', data.params.nan_treatment)
self.model_serving.log_param('lag_train', data.params.lag_train)
self.model_serving.log_param('lag_transform', data.params.lag_val)
self.model_serving.log_param(
'static_threshold',
(data.params.static_threshold if data.params.static_threshold is not None else 1)
if data.params.rem_static_win
else None,
)
static_threshold_value = None
if data.params.rem_static_win:
static_threshold_value = (
data.params.static_threshold if data.params.static_threshold is not None else 1
)
self.model_serving.log_param('static_threshold', static_threshold_value)
self.model_serving.log_param('lower_limits', data.params.low_lim)
self.model_serving.log_param('upper_limits', data.params.upp_lim)
self.model_serving.log_param('scaler_name', data.params.scaler_name)

View File

@@ -242,6 +242,20 @@ class TrainingRepository:
return scaler_dict
def _get_static_threshold(self, params: TrainModelParams) -> int | None:
"""
Get the static threshold value based on parameters.
Args:
params: Training parameters containing static window configuration
Returns:
int | None: Static threshold value (1-1000) if rem_static_win is True, None otherwise
"""
if not params.rem_static_win:
return None
return params.static_threshold if params.static_threshold is not None else 1
def _init_data_preprocessor(self, params: TrainModelParams) -> DataPreprocessor:
"""
Initialize DataPreprocessor with training parameters.
@@ -269,9 +283,7 @@ class TrainingRepository:
start_date=params.start_date,
end_date=params.end_date,
removed_intervals=removed_intervals,
static_threshold=(params.static_threshold if params.static_threshold is not None else 1)
if params.rem_static_win
else None,
static_threshold=self._get_static_threshold(params),
low_lim=params.low_lim,
upp_lim=params.upp_lim,
scaler_name=params.scaler_name,