F1-Predictor-App / models /metadata.json
nenzilea's picture
updated app.py and models section
9badf04 verified
Raw
History Blame Contribute Delete
3.53 kB
{
"best_model_name": "RF (n=300)",
"feature_columns": [
"grid_position",
"driver_id_enc",
"constructor_id_enc",
"circuit_id_enc",
"season",
"round",
"temp_max",
"precipitation",
"windspeed_max",
"driver_avg_change",
"driver_circuit_avg",
"constructor_avg_change",
"is_pitlane_start",
"driver_dnf_rate",
"constructor_dnf_rate",
"championship_position",
"quali_time_sec",
"quali_gap_to_pole",
"quali_speed_fl",
"driver_race_pace"
],
"label_map": {
"Gained": 0,
"Held": 1,
"Lost": 2
},
"train_seasons": [
2020,
2021,
2022,
2023
],
"val_seasons": [
2024
],
"test_seasons": [
2025
],
"split_strategy": "season-based (no random split)",
"imputer": "SimpleImputer(strategy=median) inside Pipeline",
"class_weight": "balanced (RF only)",
"threshold_config": {
"Lost": 1.0
},
"iteration_summary": [
{"iteration": "1 – Baseline", "model": "Logistic Regression", "cv_f1": 0.3605, "cv_std": 0.0225, "cv_acc": 0.3942},
{"iteration": "1 – Baseline", "model": "RF (n=100)", "cv_f1": 0.5380, "cv_std": 0.0198, "cv_acc": 0.5600},
{"iteration": "2 – Weather", "model": "Logistic Regression", "cv_f1": 0.3624, "cv_std": 0.0171, "cv_acc": 0.3888},
{"iteration": "2 – Weather", "model": "RF (n=200)", "cv_f1": 0.5275, "cv_std": 0.0180, "cv_acc": 0.5542},
{"iteration": "2 – Weather", "model": "XGBoost (n=200)", "cv_f1": 0.5358, "cv_std": 0.0175, "cv_acc": 0.5439},
{"iteration": "3 – History", "model": "RF (n=300)", "cv_f1": 0.5358, "cv_std": 0.0184, "cv_acc": 0.5772},
{"iteration": "3 – History", "model": "XGBoost (n=300)", "cv_f1": 0.5406, "cv_std": 0.0304, "cv_acc": 0.5523},
{"iteration": "3 – History", "model": "GradBoost (n=200)", "cv_f1": 0.5551, "cv_std": 0.0241, "cv_acc": 0.5772},
{"iteration": "4 – Quali/Pace", "model": "RF (n=300)", "cv_f1": 0.5200, "cv_std": 0.0183, "cv_acc": 0.5642},
{"iteration": "4 – Quali/Pace", "model": "XGBoost (n=300)", "cv_f1": 0.5414, "cv_std": 0.0310, "cv_acc": 0.5535},
{"iteration": "4 – Quali/Pace", "model": "GradBoost (n=200)", "cv_f1": 0.5497, "cv_std": 0.0204, "cv_acc": 0.5718}
],
"results": {
"RF (n=300)": {
"val_2024": {
"accuracy": 0.5658,
"f1_weighted": 0.5517
},
"test_2025": {
"accuracy": 0.5658,
"f1_weighted": 0.5396
}
},
"XGBoost (n=300)": {
"val_2024": {
"accuracy": 0.428,
"f1_weighted": 0.4468
},
"test_2025": {
"accuracy": 0.5094,
"f1_weighted": 0.515
}
},
"GradBoost (n=200)": {
"val_2024": {
"accuracy": 0.4885,
"f1_weighted": 0.5039
},
"test_2025": {
"accuracy": 0.5115,
"f1_weighted": 0.5177
}
}
},
"best_model_final": {
"val_2024": {
"baseline": {
"accuracy": 0.5658,
"f1_weighted": 0.5517,
"f1_macro": 0.4656
},
"threshold": {
"accuracy": 0.5658,
"f1_weighted": 0.5517,
"f1_macro": 0.4656
}
},
"test_2025": {
"baseline": {
"accuracy": 0.5658,
"f1_weighted": 0.5396,
"f1_macro": 0.4872
},
"threshold": {
"accuracy": 0.5658,
"f1_weighted": 0.5396,
"f1_macro": 0.4872
}
}
}
}