← Zurück zu Projekte

Football Outcome ML – Heimsieg-Vorhersage

End-to-End ML-Projekt: leakage-sichere Features (rolling/expanding mit shift), Baselines, Logistische Regression & Gradient Boosting, Kalibrierung, Evaluation (Accuracy, AUC, Brier, ROC/Calibration).

PythonPandasscikit-learnMatplotlibJupyter

Überblick

Ziel: Vorhersage, ob das Heimteam gewinnt (Binary: Heimsieg vs. Nicht-Heimsieg). Fokus auf Methodik statt SOTA: sauberer zeitlicher Split, Feature Engineering ohne Data Leakage, Baselines, Modelle, Kalibrierung und ehrliche Auswertung.

Daten & Split

Eigene CSV über 5 Saisons (Schema: date, home_team, away_team, home_goals, away_goals). Saisonbasierter Zeit-Split: Train = 2021–2024, Test = Saisonbeginn 2025 (~50 Spiele). Hinweis: kleines Testset ⇒ höhere Varianz der Metriken.

Feature Engineering

Rolling/Expanding-Form je Team (Tore, Gegentore, Punkte) strikt mit shift(1), daraus Differenzen Heim−Auswärts. Zusätzlich getestet: Head-to-Head (letzte n direkte Duelle) und einfache Teamstärke (expanding Punkte). Alle Features leakage-sicher konstruiert.

Modelle & Training

Baseline-Strategien (Always Homewin, Majority Class), Logistische Regression als lineares Referenzmodell, HistGradientBoostingClassifier für Nichtlinearität. Wahrscheinlichkeitskalibrierung via CalibratedClassifierCV (isotonic).

Evaluation & Ergebnisse

Metriken: Accuracy, AUC (Trennschärfe), Brier Score (W-Qualität). Ergebnisbeispiel (Test 2025): LogReg ~ Accuracy 0.46 / AUC 0.51 / Brier 0.27; HGB ~ 0.50 / 0.51 / 0.32; HGB (calibrated) ~ 0.56 / 0.51 / 0.25. Fazit: AUC nahe Zufall (frühe Saison, geringe Signalstärke), Kalibrierung verbessert jedoch die Wahrscheinlichkeiten deutlich (Brier ↓).

Learnings

Zeitlicher Split > zufälliger Split (Leckagen vermeiden). Brier & Kalibrierung sind bei probabilistischen Vorhersagen oft wichtiger als reine Accuracy. Head-to-Head/Teamstärke helfen nicht automatisch; bei kleinem Testset dominiert Varianz. Sauberer Workflow mit Baselines & ehrlicher Bewertung ist entscheidend.