Cours
Prédire le football n’est pas simple. C’est un sport à faible nombre de buts, où une frappe déviée peut tout changer, et une bonne part d’un match tient à la chance. Le football international est encore plus ardu : les sélections ne jouent que quelques rencontres compétitives par an, il y a donc bien moins de données à exploiter que dans les championnats.
Et pour corser le tout, la FIFA a encore compliqué la tâche pour cette Coupe du monde. Le format élargi à 48 équipes introduit une nouveauté : les deux premiers de chacun des douze groupes se qualifient, ainsi que huit des douze meilleurs troisièmes, rendant les issues de la phase de groupes difficiles à anticiper. Comme j’aime les défis (et le football), c’est précisément ce que j’ai entrepris de prédire.
Cet article fait suite à mon projet de prédiction de l’EURO 2024, quasiment reconstruit de zéro. La dernière fois, j’ai tout fait dans des notebooks Jupyter et prédit un seul score le plus probable par match. Cette fois, j’ai conçu une pipeline MLOps de bout en bout qui ingère les nouveaux résultats, se réentraîne automatiquement et exécute une simulation Monte Carlo de l’intégralité du tournoi 10 000 fois, transformant les prédictions au niveau des matchs en probabilités d’atteindre chaque tour.
Dans cet article, je vous présente le projet à haut niveau : les données et les variables, les pratiques MLOps qui garantissent la reproductibilité, l’architecture de la pipeline, et le modèle qui prédit le mieux le football de sélections. Vous trouverez le code complet dans le dépôt du projet. Et bien sûr, je vous dirai qui le modèle voit gagner. (Spoiler : il apprécie l’Espagne et l’Argentine autour de 16 % chacune, mais l’intéressant est la manière d’y parvenir.)
Si cela vous met dans l’ambiance du tournoi, je vous recommande notre semaine Data & AI World Cup, une série de sessions sur la façon dont les données et l’IA transforment le football, gratuites en direct ou à la demande.
En bref
- Pipeline MLOps de bout en bout pour prédire la Coupe du monde 2026, qui récupère les résultats internationaux récents et se réentraîne automatiquement sur Google Cloud, toutes les deux heures pendant le tournoi.
- Les données d’API-Football et des classements Elo sont traitées via une architecture "médaillon" Bronze–Silver–Gold et versionnées avec DVC pour une parfaite reproductibilité.
- Dix modèles issus de cinq familles ont été comparés sur un jeu de 347 matchs en réserve ; XGBoost l’emporte de justesse, les cinq premiers sont presque indissociables, et l’écart Elo entre équipes porte l’essentiel du pouvoir prédictif.
- Une simulation Monte Carlo joue le tournoi complet 10 000 fois, convertissant les prédictions de buts par match en probabilités de qualification et de victoire pour chaque équipe.
- Au 10 juin 2026, les favoris du modèle sont l’Espagne et l’Argentine, autour de 16 % chacune. Les prédictions en direct sont visibles sur un tableau de bord Streamlit mis à jour toutes les deux heures.
Développez dès aujourd'hui vos compétences en matière de MLOps
Les données derrière les prédictions
Une prédiction vaut ce que valent ses intrants, autant commencer par les matières premières. Le modèle apprend à partir de deux sources de données en direct et les transforme en une table unique et propre de variables.
D’où viennent les données
Tout s’appuie sur deux sources. API-Football fournit le calendrier et les statistiques par match : qui a joué contre qui, quand, où et comment cela s’est terminé. eloratings.net fournit les classements Elo de chaque sélection nationale.
Une cote Elo est un nombre unique qui reflète la force d’une équipe. Chaque équipe se situe quelque part sur l’échelle, et après chaque match, la cote se met à jour : battre plus fort que soi rapporte beaucoup ; perdre contre plus faible coûte cher. L’idée vient des échecs et s’adapte très bien au football. Pour l’intuition complète, cet article DataCamp l’explique dans le contexte de la Coupe du monde 2022.
Ensemble, ces deux sources donnent un jeu de données Gold d’environ 6 900 matchs internationaux depuis 2018 pour l’apprentissage.
Ce que le modèle prédit
Voici un premier choix de conception important. Au lieu de prédire directement l’issue (victoire, nul ou défaite), le modèle vise plus fin : le nombre de buts marqués par chaque équipe. Les comptes de buts au football suivent, à bonne approximation, une loi de Poisson, l’approche standard pour modéliser la fréquence d’un événement relativement rare sur une fenêtre de temps donnée.
Prédire les buts plutôt que les résultats rend tout le reste possible. Une fois qu’un score plausible peut être produit pour n’importe quelle affiche, les vraies questions — qui sort des poules, qui soulève le trophée — trouvent réponse en simulant ces scores des milliers de fois.
Les variables qui comptent
Chaque match est décrit par un petit ensemble de variables soigneusement choisies :
- Différence Elo : l’écart de cote entre les deux équipes. C’est de loin la variable la plus importante du modèle, avec une importance environ deux ordres de grandeur au-dessus de la suivante. Ce qui colle à l’intuition : l’écart de niveau en dit plus que presque tout le reste sur l’issue probable.
- Somme Elo : l’addition des deux cotes, un proxy de la qualité globale de l’affiche. La seule différence ne distingue pas Argentine–Espagne de Saint-Marin–Andorre, deux matchs équilibrés mais à des niveaux opposés ; la somme rétablit cette information.
- Évolution Elo glissante (5 derniers matchs) : l’ampleur du mouvement récent de chaque cote. Cela capture la forme du moment en tenant déjà compte de la force des adversaires affrontés.
- Buts pour et contre glissants (5 derniers matchs) : la production offensive et défensive récente en valeur absolue, calculée pour chaque équipe.
- Contexte du match : le niveau de compétition (une rencontre de Coupe du monde n’a pas le même poids qu’un qualificatif ou une Ligue des nations), le caractère éliminatoire ou non, et la tenue sur terrain neutre.
Chaque variable est strictement à l’abri des fuites, c’est-à-dire qu’elle n’utilise que des informations disponibles avant le coup d’envoi. Cela paraît évident, mais c’est l’un des moyens les plus simples de construire par inadvertance un modèle brillant en test et décevant en production.
Une piste écartée : j’avais prévu des variables de "style de jeu" issues d’un clustering des équipes sur leurs statistiques in-play, une étape d’apprentissage non supervisé. En pratique, les équipes ne se regroupaient pas de façon parlante ; plutôt que d’injecter du bruit, je l’ai abandonnée. Un résultat négatif reste un résultat.
Garantir la reproductibilité des données
Avec deux flux de données en continu, le chemin des fichiers bruts aux variables prêtes pour le modèle doit être identique à chaque exécution. C’est ce que fournit une architecture en médaillons. Elle organise les données en trois couches :
- Bronze : les données brutes, telles qu’elles arrivent, sans modification.
- Silver : nettoyées et standardisées. Ici, j’aligne les noms d’équipes entre les deux sources (les orthographes divergent souvent), je valide le schéma, je joins les cotes Elo aux fiches de match et je gère les valeurs manquantes ou mal formées.
- Gold : la couche de modélisation, une ligne propre par match avec toutes les variables calculées et prêtes pour l’entraînement.
Chaque couche alimente la suivante, ce qui permet, quand quelque chose cloche, de remonter étape par étape plutôt que de tout démêler d’un coup. Pour rendre l’ensemble reproductible, j’utilise DVC (Data Version Control). À l’arrivée de nouveaux résultats, une simple commande dvc repro reconstruit les couches Silver et Gold depuis Bronze, en ne relançant une étape que si ses intrants ont changé, et versionne les jeux de données afin de retrouver à l’identique tout état antérieur.
Choisir le meilleur modèle
La prédiction de buts est un sujet bien étudié, sans outil unique qui s’impose. Plutôt que de parier d’emblée sur une approche, j’en ai construit dix et les ai départagées.
Les prétendants
Les dix modèles couvrent cinq familles plus un simple modèle de base. Inutile d’en connaître les entrailles ; l’essentiel est qu’ils font des hypothèses très différentes sur la façon dont les buts surviennent.
| Famille | Modèles | L’idée centrale |
|---|---|---|
| Référence | Poisson à taux moyen | Suppose que chaque équipe marque simplement sa moyenne de long terme, en ignorant toutes les variables. Un plancher que les autres doivent dépasser. |
| Statistique | Poisson bivarié, binomiale négative | Modélise directement les deux comptes de buts via des lois de probabilité adaptées aux événements dénombrables. |
| Bayésien | Poisson bayésien (MCMC) | Même idée de comptage, mais renvoie une incertitude complète autour de chaque estimation. Bien plus coûteux en calcul : environ 100 fois plus lent à ajuster que les autres. |
| Séries temporelles | SARIMAX | Traite les résultats d’une équipe comme une séquence temporelle et la projette. |
| Apprentissage automatique | Ridge, Random Forest, XGBoost | Apprend les motifs directement à partir des variables, sans imposer d’équation fixe. |
| Deep learning | LSTM, CNN 1D | Réseaux neuronaux cherchant des motifs séquentiels et locaux dans les données. |
Comment ils ont été évalués
Avec dix candidats, impossible de choisir à l’œil. Chaque modèle passe donc par trois étapes, et le code décide de sa promotion. C’est le principe du déploiement piloté par le code : la promotion se fait par contrôles automatisés, pas par réglages manuels, garantissant reproductibilité et auditabilité.
- Expérimentation. Chaque modèle est entraîné uniquement sur des matchs internationaux antérieurs à la Coupe du monde 2022. Tous ne comptent pas autant : les rencontres récentes et à forts enjeux pèsent davantage (pondérations par obsolescence temporelle et importance), de sorte qu’un résultat compétitif récent influence plus qu’un ancien amical. Les hyperparamètres sont ensuite optimisés pour minimiser la log-vraisemblance négative de Poisson (NLL) via la validation croisée. La NLL évalue l’adéquation entre taux de buts prédits et buts effectivement marqués, plus c’est bas, mieux c’est. On retient la meilleure version de chaque modèle.
- Assurance qualité. Ces modèles réglés sont testés sur des matchs jamais vus : la Coupe du monde 2022 et six grands tournois depuis (l’EURO, deux CAN, la Copa América, la Coupe d’Asie et la Gold Cup), soit 347 matchs. Ici, l’indicateur devient le ranked probability score (RPS), qui mesure la qualité d’une prévision probabiliste pour des issues ordonnées (défaite, nul, victoire) et valorise la confiance dans la bonne direction. Plus c’est bas, mieux c’est. Le meilleur devient le challenger. Le RPS est la bonne jauge car l’objectif réel est de prédire le parcours des équipes, pas seulement des totaux de buts.
- Déploiement. Le challenger est comparé au champion en titre. S’il gagne, il est promu et réentraîné sur l’ensemble des matchs disponibles, afin d’aborder le tournoi avec toutes les données.
Le vainqueur
Alors, quelle approche l’emporte ? Voici le classement complet sur le jeu de réserve, au RPS (plus bas est meilleur) :
| Modèle | RPS (holdout) |
|---|---|
| XGBoost | 0.18289 |
| Poisson bayésien | 0.18316 |
| Binomiale négative | 0.18373 |
| Poisson bivarié | 0.18389 |
| Random Forest | 0.18392 |
| SARIMAX | 0.18583 |
| Ridge | 0.18813 |
| LSTM | 0.19299 |
| CNN 1D | 0.20916 |
| Poisson à taux moyen (référence) | 0.22872 |
Quatre enseignements se dégagent :
- XGBoost gagne, de justesse. Les cinq premiers (XGBoost, Poisson bayésien, binomiale négative, Poisson bivarié et Random Forest) se tiennent en ~0,0011 de RPS. Quand des approches très différentes finissent aussi proches, le plafond vient des données et des variables plus que du modèle. Ici, la différence Elo fait l’essentiel du travail, le choix du modèle bouge peu l’aiguille.
- Une variable domine. La différence Elo est de loin la plus prédictive, environ cent fois plus influente que la suivante. Rassurant plus que surprenant : à l’échelle d’un match, l’écart de force raconte l’essentiel.
- Le deep learning ferme la marche (hors baseline). La CNN 1D et la LSTM sont les plus faibles après le modèle naïf. Avec ~7 000 matchs à apprendre, il n’y a pas assez de données pour nourrir des réseaux très paramétrés ; les méthodes classiques gèrent bien mieux les petits jeux structurés.
- Aucun signe de surapprentissage pour les modèles classiques. D’ordinaire, un modèle fait un peu moins bien sur des données inédites qu’en entraînement. Ici, presque tous (sauf la LSTM) obtiennent de meilleurs scores sur les tournois tenus à l’écart que en validation croisée. Probable explication : un tournoi est plus prévisible que le calendrier international courant — enjeux plus forts, équipes plus solides et familières, terrains neutres — ce qui réduit le hasard.
Pour le direct, je ne fais pas tourner les dix. Je garde un effectif resserré : la référence à taux moyen comme point d’appui, plus les trois meilleurs. XGBoost et Poisson bayésien occupent les deux premières places.
La troisième place est un quasi ex æquo : la binomiale négative et le Poisson bivarié ne sont séparés que par 0,0002 de RPS et échangent selon la graine aléatoire ; entre deux modèles statistiquement indiscernables, j’ai retenu le Poisson bivarié, dont la formulation est mieux établie dans la littérature de prédiction du football (Karlis et Ntzoufras, 2004).
On obtient donc un trio : XGBoost (apprentissage automatique), Poisson bivarié (statistiques classiques) et Poisson bayésien (inférence bayésienne). La suite explique comment ces modèles s’exécutent, se réentraînent et transforment des prédictions de matchs isolés en pronostic complet de tournoi.
Passer en production
Un modèle qui vit dans un notebook n’est utile que tant que vous êtes devant. Pour couvrir un mois de compétition, tout doit tourner seul : récupérer les résultats, réentraîner, resimuler et rafraîchir le pronostic sans intervention humaine. C’est le rôle de la pipeline.
La pipeline bi-horaire sur GCP
L’ensemble s’exécute en une tâche planifiée unique sur Google Cloud Run. Avant le tournoi, elle s’active une fois par jour ; à partir du match d’ouverture du 11 juin, toutes les deux heures. Chaque exécution suit le même cycle :
- Vérifier les nouveautés. Si aucun match ne s’est terminé depuis la dernière exécution, la tâche s’arrête.
- Ingestion et reconstruction. S’il y a de nouveaux résultats, ils sont tirés des sources et un
dvc reproreconstruit Silver et Gold pour actualiser les variables. - Réentraîner, prédire, simuler. Les modèles de l’effectif sont mis à jour (détails ci-dessous), tous les matchs à venir sont prédits, et le tournoi est simulé.
- Scorer. Une fois un match joué, ses prédictions sont scorées, alimentant le monitoring décrit plus loin.
Parce que chaque étape est déclenchée par du code à horaire fixe, il n’y a aucun clic manuel pendant le tournoi. Nouveau résultat en entrée, pronostic rafraîchi en sortie.
Deux modes : figé vs par tour
Le projet sert aussi d’expérience. Pendant le tournoi, l’effectif tourne en deux modes parallèles, et la question au cœur du test est la suivante : le réentraînement au fil de l’eau améliore-t-il les prédictions ?
- Figé. Les modèles sont gelés au coup d’envoi et ne sont jamais réentraînés. Ils réagissent aux résultats parce que chaque simulation repart du tableau mis à jour, mais les paramètres appris ne bougent plus.
- Par tour. Les hyperparamètres restent fixes, mais les paramètres appris sont réajustés sur toutes les données disponibles après chaque journée de groupes et après chaque tour à élimination directe, afin que les modèles apprennent du tournoi en cours.
Faire tourner les deux en parallèle permet de les comparer, une fois le tournoi terminé, sur deux axes : la précision brute et la vitesse à laquelle leur incertitude se réduit à mesure que le plateau se resserre. Si le mode par tour l’emporte, le réentraînement régulier se justifie ; si le figé tient la distance, la complexité supplémentaire n’est peut-être pas nécessaire.
Des prédictions au tournoi : la simulation Monte Carlo
Prédire un match, c’est une chose. En déduire « la probabilité que chaque équipe gagne le tournoi » requiert la simulation Monte Carlo.
D’abord, l’inférence. Plutôt que de prédire seulement les affiches connues, le modèle prédit chaque affrontement possible entre les 48 équipes. Cela semble excessif, mais dans un tournoi, n’importe quelle équipe peut croiser n’importe quelle autre en phase finale, il faut donc une prédiction prête pour chaque paire.
Ensuite, il faut encoder les règles, et le format 2026 complique la donne. Dans 12 groupes, les deux premiers passent d’office, tout comme les huit meilleurs troisièmes, et la place dans le tableau des huit troisièmes dépend des groupes d’origine.
Il existe 495 façons de choisir huit groupes qualifiés sur douze (douze parmi huit), et chacune produit un tableau différent des seizièmes. Pas de formule élégante ; la FIFA publie un tableau. J’ai donc (ou plutôt mon collègue très compétent Cursor) codé en dur les 495 combinaisons dans une table de correspondance, à partir du tableau officiel.
"best_third_mappings": {
"EFGHIJKL": {
"74": "3F",
"77": "3G",
"79": "3E",
"80": "3K",
"81": "3I",
"82": "3H",
"85": "3J",
"87": "3L"
},
"DFGHIJKL": ...
Chaque clé, comme EFGHIJKL, liste les huit groupes d’où proviennent les troisièmes qualifiés, et les valeurs placent chacune de ces équipes (3E, 3F, etc.) dans un numéro de match précis des seizièmes. C’est une entrée ; le mapping complet en compte 495, une par combinaison.
Les trois pays hôtes (États-Unis, Canada et Mexique) nécessitent un traitement supplémentaire. Lorsqu’un hôte joue dans son propre pays, la simulation applique un ajustement d’avantage à domicile pour cette affiche, tandis que le reste du tournoi est considéré à terrain neutre.
Avec prédictions et règles en place, la simulation joue le tournoi 10 000 fois. À chaque exécution, elle suit la procédure suivante :
- Tirer un score pour chaque match en échantillonnant les buts à domicile et à l’extérieur depuis les distributions prédites par le modèle
- Jouer la phase de groupes selon les règles réelles de points et départages
- Déterminer le tableau des meilleurs troisièmes
- Remplir le tableau à élimination directe à partir des correspondances ci-dessus
- Jouer jusqu’au sacre d’un champion.
Sur 10 000 tournois simulés, la part des exécutions où une équipe atteint la finale ou soulève le trophée devient sa probabilité. Une exécution est une conjecture ; dix mille constituent un pronostic.
Tout tracer avec MLflow
Chaque exécution, dans les deux modes, est consignée dans MLflow (hébergé sur DagsHub). Le suivi d’expérience consiste à enregistrer systématiquement intrants, réglages, résultats et sorties pour comparer ou reproduire à l’identique. Quelques points marquants :
- Reproductibilité. La simulation utilise une graine fixe dérivée du tour, partagée par les modes figé et par tour. Toute différence provient donc des modèles, pas du hasard de la simulation. Chaque exécution journalise aussi l’instantané de données vu (nombre de lignes Gold et horodatage) afin de remonter aux intrants.
- L’expérience. Chaque exécution est étiquetée par son mode (figé ou par tour) et son stade de cycle de vie, de l’expérimental et QA jusqu’aux inférences live et réentraînements, en miroir du flux de promotion précédent.
- Comparaison. Le RPS sur jeu de réserve est journalisé comme métrique de sélection, avec la référence au run champion pour la lignée. Le temps d’ajustement est aussi enregistré, ce qui met noir sur blanc l’entraînement ~100× plus lent du modèle bayésien.
Les modèles entraînés et les fichiers de prédiction (probabilités du tournoi, classements de groupe et pronostics de matchs) sont stockés comme artefacts, et ce sont précisément ces fichiers que lit le tableau de bord live. La boucle est bouclée : des résultats bruts, jusqu’à l’entraînement et la simulation, aux chiffres visibles en ligne.
Surveiller la dérive
Dernière brique, activée une fois les matchs joués. À mesure que les résultats réels arrivent, les prédictions correspondantes sont scorées et comparées à la référence à taux moyen. Si les modèles complets se font dépasser par un modèle ignorant tout des équipes, c’est un signal de dérive : les motifs appris avant le tournoi ne correspondent peut-être plus à ce qui se passe sur le terrain.
Cette surveillance est une pratique standard pour tout système de prédiction en direct ; vous pouvez en lire davantage dans ce guide sur la dérive des données et des modèles.
Alors, qui gagne la Coupe du monde ?
Après toute cette mécanique, voici ce qui compte.
Les favoris
Au 10 juin 2026, veille du match d’ouverture, le verdict du modèle est net en tête et serré juste derrière. L’Espagne et l’Argentine dominent, chacune autour de 16 % de chances de soulever le trophée. Voir les champions du monde (Argentine) et les champions d’Europe (Espagne) en tête est un bon test de bon sens : le modèle reste ancré dans la réalité.
Derrière, un peloton compact : France, Angleterre, Brésil et Colombie complètent les principaux prétendants. Ces chiffres sont en direct et bougeront dès que les vrais résultats tomberont ; considérez-les comme un instantané au 10 juin, pas une prophétie gravée dans le marbre. Le tableau de bord montre toujours les chiffres du moment, avec au plus deux heures de décalage.
Le tableau de bord live
Justement : tous les chiffres de cet article proviennent d’une application Streamlit actualisée automatiquement au fil des exécutions de la pipeline. Ouvrez wc2026-predictions.streamlit.app pour suivre le tournoi. Quatre vues principales :
- Vue d’ensemble du tournoi : jusqu’où chaque équipe est attendue, en un coup d’œil.
- Classements de groupes : pour chaque groupe, la probabilité de finir premier, deuxième, troisième (découpé en troisième-qualifié vs troisième-éliminé, grâce à la règle des meilleurs troisièmes) ou quatrième.
- Prédictions de matchs : pour chaque match de poule, la probabilité de victoire à domicile, nul ou victoire à l’extérieur, ainsi que le tableau le plus probable.
- Affiches de phase finale les plus courantes : les duels que la simulation produit le plus souvent.
Un détail à noter dans la vue matchs : quelques équipes apparaissent simultanément dans deux créneaux possibles des seizièmes. Ce n’est pas un bug. Cela arrive quand un groupe est si équilibré que le modèle ne peut trancher sûrement la position qualificative d’une équipe. Combiné à l’incertitude sur les meilleurs troisièmes, ces deux issues mènent à des emplacements différents dans le tableau. Pour la Turquie, cela les a même placés deux fois en huitièmes.
Le graphique ci-dessous montre les derniers tours (quarts jusqu’à la finale) projetés par le modèle XGBoost avant le coup d’envoi :

L’équipe pile ou face : États-Unis
Le charme d’un tel modèle tient aux équipes qui défient l’œil, et l’exemple le plus net est celui des États-Unis. Sur la vue d’ensemble du tableau de bord, vous remarquerez immédiatement que les USA ressortent en couleur.
En tant que co-organisateurs devant leur public, on pourrait attendre un départ confortable, mais le modèle est bien plus prudent : seulement ~54,6 % de chances de sortir de leur groupe, 13e plus faible ratio du plateau (alors que deux tiers des équipes se qualifient !), car leur groupe avec l’Australie, le Paraguay et la Turquie est particulièrement homogène.
L’intéressant vient après. Une fois qualifiés de justesse, les USA se retrouvent à peu près à pile ou face à chaque tour suivant. Accumulez ces lancers de pièce et on aboutit à ~2 % de chances de remporter le tournoi, 13e meilleure cote sur 48 équipes.
Une équipe 13e en partant du bas pour sortir des poules et 13e en partant du haut pour tout gagner, c’est la définition même de l’équipe pile ou face : jamais favorite, jamais hors du coup.
Pour conclure
Ce projet a demandé beaucoup de travail et couvre bien plus que ce qu’un article peut contenir. Le repo regroupe de nombreux éléments non abordés ici : l’ensemble des modèles candidats, l’ingénierie des variables et l’orchestration qui fait tourner le tout, entre autres.
Pour l’heure, le modèle a rendu son verdict, et le terrain tranchera. Que vous soyez venu pour le MLOps ou pour le football, j’espère que vous prendrez autant de plaisir que moi à suivre le déroulé. Vous pouvez consulter le pronostic en direct au fil des matchs et voir dans quelle mesure les prévisions tiennent.
Si vous souhaitez approfondir certains concepts évoqués, je vous recommande notre cours MLOps Concepts.
Rédacteur en chef Data Science chez DataCamp | Je suis passionné par la prévision et le développement à l'aide d'API.


