SIENTIAPDE-1430: Refactor DataPreprocessor date filtering, make rce_train radius optional, and introduce constants for model names.

This commit is contained in:
Bruno Domingues
2025-12-19 12:28:07 -03:00
parent 9a77257920
commit 7cbb7022e5
3 changed files with 50 additions and 38 deletions

View File

@@ -1,6 +1,10 @@
from dataclasses import dataclass
from typing import Any
# Model name constants
MODEL_LINEAR_REGRESSION = 'Linear Regression'
MODEL_POLYNOMIAL_REGRESSION = 'Polynomial Regression'
@dataclass
class TrainModelParams:
@@ -239,23 +243,23 @@ class TrainModelParams:
if self.scaler_name not in valid_scalers:
raise ValueError(f'scaler_name must be one of {valid_scalers}, got {self.scaler_name}')
valid_models = ['Linear Regression', 'Polynomial Regression']
valid_models = [MODEL_LINEAR_REGRESSION, MODEL_POLYNOMIAL_REGRESSION]
if self.model_name not in valid_models:
raise ValueError(f'model_name must be one of {valid_models}, got {self.model_name}')
if self.model_name == 'Polynomial Regression' and self.degree < 2:
if self.model_name == MODEL_POLYNOMIAL_REGRESSION and self.degree < 2:
raise ValueError(
f'degree must be at least 2 for Polynomial Regression, got {self.degree}'
f'degree must be at least 2 for {MODEL_POLYNOMIAL_REGRESSION}, got {self.degree}'
)
if self.model_name == 'Polynomial Regression' and self.scaler_name == 'None':
if self.model_name == MODEL_POLYNOMIAL_REGRESSION and self.scaler_name == 'None':
raise ValueError(
'scaler_name must be set (e.g., "Standard Scaler") for Polynomial Regression '
f'scaler_name must be set (e.g., "Standard Scaler") for {MODEL_POLYNOMIAL_REGRESSION} '
'to avoid numerical overflow with large feature values'
)
if self.model_name == 'Linear Regression' and self.degree != 1:
raise ValueError(f'degree must be 1 for Linear Regression, got {self.degree}')
if self.model_name == MODEL_LINEAR_REGRESSION and self.degree != 1:
raise ValueError(f'degree must be 1 for {MODEL_LINEAR_REGRESSION}, got {self.degree}')
def _validate_intervals_and_dates(self) -> None:
"""Validate removed_intervals format and date parameters."""