Spaces:
Sleeping
Sleeping
| """Shared configuration for the F1 pit-stop training pipeline.""" | |
| from __future__ import annotations | |
| from pathlib import Path | |
| RANDOM_SEED = 42 | |
| PROJECT_ROOT = Path(__file__).resolve().parent.parent | |
| DATA_DIR = PROJECT_ROOT / "data" | |
| RAW_TRAIN_CSV = DATA_DIR / "train.csv" | |
| INTERIM_DIR = DATA_DIR / "interim" | |
| RAW_PARQUET = INTERIM_DIR / "raw.parquet" | |
| PROCESSED_DIR = DATA_DIR / "processed" | |
| PROCESSED_TRAIN = PROCESSED_DIR / "train.parquet" | |
| PROCESSED_TEST = PROCESSED_DIR / "test.parquet" | |
| MLFLOW_DIR = PROJECT_ROOT / "mlflow" | |
| MLFLOW_TRACKING_URI = f"sqlite:///{MLFLOW_DIR / 'mlflow.db'}" | |
| MLFLOW_ARTIFACT_ROOT = MLFLOW_DIR / "artifacts" | |
| EXPERIMENT_NAME = "pit-stop-classifier" | |
| REGISTERED_MODEL_NAME = "f1-pit-stop-classifier" | |
| MODELS_DIR = PROJECT_ROOT / "models" | |
| CHAMPION_EXPORT_DIR = MODELS_DIR / "champion" | |
| TARGET_COL = "PitNextLap" | |
| TRAIN_YEARS = (2022, 2023, 2024) | |
| TEST_YEARS = (2025,) | |
| RAW_COLUMNS = [ | |
| "id", "Driver", "Compound", "Race", "Year", "PitStop", "LapNumber", | |
| "Stint", "TyreLife", "Position", "LapTime (s)", "LapTime_Delta", | |
| "Cumulative_Degradation", "RaceProgress", "Position_Change", "PitNextLap", | |
| ] | |
| ID_COLUMNS = ["id", "Driver", "Race", "Year"] | |
| CATEGORICAL_COLUMNS = ["Compound", "TyreLife_bucket"] | |
| AUTOML_TIME_BUDGET = 600 | |
| AUTOML_METRIC = "macro_f1" | |
| AUTOML_ESTIMATORS = ["lgbm", "xgboost", "xgb_limitdepth", "catboost"] | |
| def ensure_dirs() -> None: | |
| for d in (INTERIM_DIR, PROCESSED_DIR, MLFLOW_DIR, MLFLOW_ARTIFACT_ROOT, MODELS_DIR): | |
| d.mkdir(parents=True, exist_ok=True) | |