XGBoost Gradient Boosting
Le football est un sport à faibles scores où les différences entre équipes sont souvent marginales. XGBoost gère naturellement les interactions non-linéaires, les valeurs manquantes, et produit des prédictions robustes sur des datasets de taille modeste.
Calibration Isotonique
XGBoost produit des probabilités brutes souvent mal calibrées (ex. donner 85% de chances à une équipe légèrement favorite). La calibration isotonique ajuste ces probabilités sur un hold-out temporel de 15% pour qu'elles correspondent à la réalité observée.
Walk-Forward Validation
On entraîne sur le passé et on teste sur le futur, en avançant chronologiquement sur 6 fenêtres. Cette approche respecte la causalité temporelle et évite le data leakage (on ne peut pas utiliser des matchs futurs pour prédire le passé).
Pénalité Confédération
Le classement FIFA seul est trompeur : l'Iran classé #21 joue majoritairement en AFC contre des équipes moins compétitives qu'un #21 UEFA. On ajoute une pénalité au ranking pour comparer les équipes à leur niveau réel de compétition.
Sample Weights
Un match France-Brésil en finale de CdM et un match Botswana-Somalie en qualifications CAF ont le même poids par défaut. On pondère chaque match à l'entraînement selon la qualité des équipes et l'importance de la compétition, pour que le modèle apprenne davantage des confrontations qui comptent.
Simulation Monte Carlo
Pour propager l'incertitude à travers tout le tournoi, on simule 10 000 fois la compétition entière. Chaque match est tiré aléatoirement selon les probabilités du modèle. Les résultats (prob. de victoire en groupe, de titre) sont des fréquences sur ces 10 000 simulations.
L'accuracy mesure la proportion de résultats (H/D/A) correctement prédits. La baseline naïve est de prédire toujours le résultat le plus fréquent. Le log loss pénalise la confiance mal placée : une proba de 90% sur le mauvais résultat est très pénalisée. Plus il est bas, mieux c'est. Le MAE buts est l'erreur absolue moyenne sur le score prédit (±1 but en moyenne est typique pour ce type de modèle).
L'écart de ranking FIFA (12.2%) domine largement — c'est la variable la plus prédictive. Le modèle s'appuie en priorité sur la hiérarchie mondiale établie.
Les confrontations directes (% victoires, buts moyens) pèsent collectivement ~15%. L'historique entre deux équipes apporte une information que le ranking seul ne capture pas.
Les features de forme sont très nombreuses mais chacune pèse ~3.7–4.1%. Leur contribution cumulée est importante.
L'importance de la compétition (4.2%) et la phase éliminatoire (3.8%) ont un effet notable. Les équipes se comportent différemment en CdM qu'en amical, et différemment en phase à élimination directe qu'en groupe.
Prédiction match par match
Pour chaque match, le modèle produit une distribution de probabilités P(H), P(D), P(A) et des scores attendus via les régresseurs.
Score conditionnel pondéré
Le score affiché n'est pas la moyenne brute, mais la moyenne pondérée des simulations cohérentes avec le résultat dominant.
Exemple : si Home est prédit, on filtre les 10 000 simulations où Home gagne pour calculer le score moyen — évitant d'afficher 2-1 / 1-0 pour une victoire nette.
Simulation de la phase de groupes
On tire aléatoirement les 72 matchs de groupe selon les probas. Les classements sont déterminés par pts → diff. de buts → buts marqués, puis les 8 meilleurs 3ème sont sélectionnés selon les règles FIFA.
Simulation des phases finales
L'arbre knockout est simulé en propagant les vainqueurs. En cas de nul en phase éliminatoire, une prolongation / tirs au but est simulée avec P(home_wins_ET) ≈ 0.5 légèrement ajustée par le ranking.
Agrégation sur 10 000 itérations
Les probabilités finales (atteindre les quart de finale, demi-finale, finale) sont les fréquences observées sur les 10 000 simulations complètes. Plus une équipe gagne souvent dans les simulations, plus sa probabilité est élevée.