Épilogue¶
La campagne est close. Ce dernier chapitre fait trois choses : il confronte le résultat aux objectifs qui avaient été fixés au départ, il décrit ce qui vit encore en production, et il liste les trois voies qui restent ouvertes — avec, pour chacune, son statut exact au moment où ces lignes sont écrites.
C'est le chapitre où l'on distingue le plus scrupuleusement ce qui est mesuré de ce qui est en cours.
Le verdict contre les cibles¶
Le protocole du concours annonçait deux paliers. Le premier — battre le champion de départ — ouvrait le classement. Le second — atteindre le niveau des bookmakers, 0.198 de Brier et environ 70 % d'exactitude — gagnait le concours.
| Cible | Objectif | Atteint | Verdict |
|---|---|---|---|
| Battre le champion v2 | < 0.2330 | 0.2041 | largement |
| Battre la baseline Glicko | < 0.2422 | 0.2041 | largement |
| Brier de niveau bookmaker | ≤ 0.198 | 0.2041 | manqué de 0.0061 |
| Exactitude de niveau bookmaker | ≥ 68,7 % | 67,9 % | manqué de 0,8 point |
En global, les cibles sont manquées. Il faut l'écrire ainsi, sans enrobage : la campagne a produit un modèle nettement meilleur que son point de départ, et nettement moins bon que l'objectif qu'elle s'était fixé.
L'ampleur du chemin parcouru mérite toutefois d'être notée. Au départ du projet, l'écart d'exactitude aux bookmakers était de 12,7 points ; à l'arrivée, il est de 0,8 point. Sur le Brier, l'écart passe de 0.0442 à 0.0061.
Là où les cibles sont battues¶
Le découpage par segments donne une image plus nuancée. Sur les segments les plus prévisibles du holdout, le repère de 0.198 est franchi :
| Segment | n | Brier | Exactitude | Contre la cible de 0.198 |
|---|---|---|---|---|
| Horloges froides | 244 | 0.1591 | 75,0 % | battue |
| LAN | 380 | 0.1722 | 74,7 % | battue |
| Bo1 | 60 | 0.1729 | 76,7 % | battue |
| Ensemble | 1 146 | 0.2041 | 67,9 % | manquée |
| Noyau dur (en ligne, Bo3+) | 758 | 0.2205 | 64,3 % | manquée |
Limite importante — ce n'est pas une victoire sur les bookmakers
Trois précautions, toutes déjà posées dans les chapitres précédents et toutes indispensables ici.
Le pool n'est pas le même. Le 0.198 est mesuré sur du tier 1 pur ; nos segments faciles concentrent au contraire des affiches déséquilibrées. On compare un chiffre mesuré sur des matchs serrés à un chiffre mesuré sur des matchs déséquilibrés — l'avantage est structurel, pas méthodologique.
Le découpage est a posteriori. On n'a pas annoncé avant la campagne que l'on viserait le segment LAN ; on l'a découvert en découpant.
Un bookmaker mesuré sur nos segments faciles ferait probablement mieux encore. Il dispose de tout ce dont nous disposons, plus les cotes du marché et les compositions du jour.
La formulation honnête est donc : sur les poches les plus prévisibles de notre pool, notre modèle atteint un niveau d'erreur comparable au repère de littérature. Pas : « on a battu les bookmakers ».
Depuis : la comparaison au marché n'est plus théorique¶
Tout ce qui précède a été écrit à un moment où le repère bookmaker était un chiffre de littérature et rien d'autre. Ce n'est plus le cas.
Après la clôture de la campagne, six chantiers ont transformé cette comparaison en mesure appariée, match par match, sur nos propres rencontres — le récit complet est la partie Contre le marché. Trois résultats changent la lecture de ce chapitre.
La barre n'était pas la bonne. Sur les matchs cotés de notre holdout, le marché réel ne fait pas 0.198 / 68,7 % mais 0.2094 / 65,6 %. Le palier de littérature décrivait un pool que notre échantillon ne reproduit pas.
Le pool comparable est plus dur que le pool global. Défini a priori et horodaté avant toute mesure, il fait chuter l'ancre externe de 59,1 % à 55,3 % d'exactitude. Notre modèle y est moins bon en valeur absolue, mais son apport au-dessus de l'ancre augmente : +11,5 points contre +8,8 globalement.
Le duel lui-même a été mesuré à armes égales. Sur 1 428 matchs cotés d'octobre 2025 à août 2026, avec une fenêtre d'entraînement constante : à pleine force, modèle et bookmaker sont statistiquement indiscernables (0.2130 contre 0.2127, \(P = 47{,}1\,\%\)) ; à couverture totale, le marché nous bat (0.2239 contre 0.2076, \(P = 0{,}0\,\%\)). Aucune configuration ne porte \(P(\text{nous meilleurs})\) au-dessus de 95 %.
Le verdict final, corrigé
« Nous ne battons pas le bookmaker. Au mieux, à pleine force, nous l'égalons. » Cette phrase remplace, pour toutes les questions de comparaison au marché, les conditionnels de ce chapitre — elle repose désormais sur des cotes réelles appariées à nos matchs, et non sur un repère mesuré ailleurs.
Ce qui ne change pas : la campagne n'a pas atteint ses cibles telles qu'elles avaient été formulées, et la marge de 6-8 % du bookmaker reste entière entre « égaler » et « gagner de l'argent ».
Ce que le manque dit vraiment¶
Trois chantiers successifs ont établi que l'écart restant n'est pas un écart de modélisation : le modèle n'est ni surconfiant, ni mal réglé, ni mal calibré sur le segment où il perd. La démonstration complète est dans la carte de prévisibilité.
Il reste une seule explication, et elle est structurelle : de l'information manquante, concentrée sur les Bo3 en ligne entre équipes établies — c'est-à-dire précisément les matchs qui décident des invitations au Major.
Ce qui reste en production¶
Le leader n'est pas resté un fichier de laboratoire. Il a été industrialisé le 25 août à 05 h 35, et il tourne.
Le modèle dans le simulateur¶
Le blend segmodel alimente le Monte Carlo qui estime les probabilités d'invitation au Major. Concrètement : au lieu de tirer chaque match à venir selon le Glicko officiel figé, le simulateur le tire selon le blend 75/25 à 54 features.
Le pipeline de production réutilise les mêmes extracteurs de familles que le concours — pas une réimplémentation — sur un balayage chronologique unique, sans fuite du futur. L'extraction du cache est incrémentale.
Le ré-entraînement quotidien¶
Le modèle est réentraîné chaque jour sur les douze derniers mois, ce qui coûte environ deux minutes une fois l'extraction du cache amorcée (le tout premier passage analyse ~11 500 pages, environ quatre minutes).
Conséquence assumée et documentée : l'état embarqué dans le modèle date du dernier entraînement. Les matchs du jour n'entrent dans les horloges qu'au prochain ré-entraînement.
Un arbitrage de simulation qui mérite d'être connu¶
Un détail de conception, contre-intuitif et mesuré, illustre bien la différence entre prédire et simuler.
Pendant un tirage Monte Carlo, seules certaines features peuvent légitimement évoluer d'un match simulé au suivant. Les horloges le peuvent — TrueSkill par série, TrueSkill par carte, Glicko-2. Les autres familles (statistiques joueurs, cartes et veto, économie, rang mondial, préchauffage externe) sont gelées à leur valeur du jour, faute de pouvoir être simulées honnêtement.
Or laisser vivre les horloges classiques — Glicko, Elo à marge, forme, head-to-head — dégrade la simulation. Mesure faite sur quatre défaites simulées d'affilée : les canaux qui répondent dans le bon sens font baisser le logit de 0,18, tandis que les autres le font monter de 0,6 pour le perdant.
L'explication tient à la corrélation entre features : dans une logistique à 54 colonnes fortement corrélées, certains coefficients ne mesurent pas un effet mais corrigent leurs voisines. Si l'on gèle la majorité et qu'on laisse vivre les correcteurs, ceux-ci corrigent une réalité qui ne bouge plus, et le résultat part à l'envers.
Erreur fréquente — croire qu'un bon modèle prédictif se simule tel quel
Un modèle entraîné à prédire un match ne se transporte pas automatiquement dans un simulateur qui enchaîne des dizaines de matchs. Les coefficients d'une régression sur features corrélées ne sont pas des effets causaux, et les propager dans une boucle les fait dériver.
C'est un des rares endroits du projet où l'interprétabilité de la logistique a été indispensable : ce diagnostic aurait été très difficile à poser sur un ensemble d'arbres.
Les autres livrables encore vivants¶
| Livrable | Statut |
|---|---|
| Sentinelle anti-patchwork | active à chaque construction du jeu de données |
| Correctif d'arrêt anticipé du modèle de repli | appliqué, modèle réentraîné |
| Gisements auxiliaires (manches, historique externe, rang daté) | rafraîchissables, consommés par la production |
| Rapports et journaux des quinze chantiers | conservés — la carte des impasses |
Les trois voies au-delà¶
La campagne est close parce que nos données sont épuisées, pas parce que le problème l'est. Trois voies restent ouvertes. Leur statut au moment de la rédaction est donné sans complaisance.
Voie 1 — les cotes des bookmakers¶
Statut à la clôture de la campagne : identifiée, chiffrée, non accessible gratuitement. Aucune donnée en main.
Statut depuis : ouverte et mesurée. Voir la partie Contre le marché.
C'est la seule information dont on puisse raisonnablement penser qu'elle fermerait l'écart sur le noyau dur. Une cote n'est pas une prédiction : c'est l'agrégat des paris de milliers de personnes, dont certaines savent des choses qui ne sont écrites nulle part — une composition remaniée, un joueur souffrant, un conflit interne.
Ce qui avait été établi par la mission de reconnaissance :
- notre cache HTML ne contient aucune cote ; le mot n'y apparaît que dans les commentaires de forum, le site source injectant ses cotes en JavaScript géolocalisé ;
- le fournisseur professionnel identifié (PandaScore) réserve les cotes à ses offres payantes ;
- l'intégration technique serait triviale le jour où une clé arriverait : l'API externe déjà utilisée expose un identifiant de correspondance vers ce fournisseur, la jointure est donc gratuite.
Ce diagnostic était juste pour le cache HTML, et faux pour l'autre moisson. Les cotes étaient déjà sur disque, dans un champ de l'API publique collecté pour les manches et jamais ouvert : 1 428 matchs cotés d'avant-match, zéro requête réseau, zéro dollar. Ce qui a manqué n'était donc ni le budget ni l'ingénierie — c'était un inventaire de ce qu'on avait déjà collecté.
Deux conséquences pour la suite du projet. D'une part, l'idée qui motivait cette voie — « la cote nous apprendrait ce qui manque sur le noyau dur » — a été testée : la cote en feature n'apporte rien (0.2073 contre 0.2072 en validation), et même en réglant a posteriori le mélange optimal sur le holdout, le supplément d'information de notre modèle par rapport au marché vaut 0.0007 de Brier. D'autre part, la vraie voie restante n'est plus « obtenir des cotes » mais obtenir de meilleures cotes : horodatées, d'ouverture et de clôture, chez plusieurs opérateurs.
Voie 2 — les statistiques détaillées par carte via les archives web¶
Statut : moisson en cours au moment de la rédaction. Aucun résultat. À présenter comme une piste, pas comme un acquis.
Les pages de statistiques détaillées par carte du site source — duels d'ouverture, clutchs, multi-kills, splits par camp — sont inaccessibles en direct. Elles sont en revanche archivées : la reconnaissance avait établi l'existence de plus de 20 000 URL archivées de ce type, servies sans protection, chaque cliché portant sa date, donc temporellement propres par construction.
Un chantier d'inventaire a été lancé pour croiser les identifiants de cartes de nos matchs avec la couverture réellement archivée, mois par mois, avant toute collecte massive. Il n'a pas encore rendu de résultat.
Deux raisons d'être prudent sur cette voie. D'abord, la même famille de sources a déjà déçu : les statistiques de carrière archivées n'avaient couvert que 19 % du holdout et n'avaient rien apporté. Ensuite, la couverture n'est pas le seul enjeu — encore faut-il que l'information apportée ne soit pas déjà contenue dans les statistiques par joueur déjà extraites du cache.
Pourquoi l'inventaire avant la collecte
Le chantier commence par mesurer la couverture disponible avant de lancer une collecte longue. C'est la leçon des carrières archivées : une source à 19 % de couverture ne peut pas apporter de gain, et il vaut mieux le savoir en une heure d'inventaire qu'en une journée de collecte.
Voie 3 — un navigateur sans interface contre la protection anti-robot¶
Statut : sonde en cours au moment de la rédaction. Aucun résultat.
Le blocage du sous-domaine de statistiques a été analysé en détail : ce n'est pas une question d'empreinte réseau — six empreintes de navigateurs récents ont été essayées, et une session réchauffée avec cookies valides sur le reste du site est rejetée sur ce chemin précis. Il faudrait exécuter le code JavaScript du défi, ce qui suppose un vrai moteur de navigateur.
C'est la piste la plus incertaine des trois. Même si elle aboutissait techniquement, elle donnerait accès à des statistiques que les deux autres voies recouvrent partiellement, au prix d'une dépendance lourde et d'un rapport à la source discutable.
Récapitulatif des voies¶
| Voie | Ce qu'elle apporterait | Statut à la clôture de rédaction |
|---|---|---|
| Cotes bookmakers | la seule information qui fermerait le Bo3 en ligne | ouverte et mesurée depuis — 1 428 matchs cotés trouvés dans notre propre moisson ; verdict : égalité à pleine force, aucun apport en feature |
| Statistiques par carte archivées | granularité fine sur les duels et les clutchs | en cours — inventaire de couverture lancé, aucun résultat |
| Navigateur sans interface | accès direct aux pages de statistiques | en cours — sonde lancée, aucun résultat |
Limite importante — deux de ces trois lignes sont des intentions
Les colonnes « en cours » ne sont pas des résultats et ne doivent pas être lues comme tels. À l'heure où ce chapitre est écrit, aucune des deux n'a produit le moindre chiffre. Si l'une d'elles aboutit, elle devra être mesurée dans les règles : décision en validation interne, une passe de holdout, contrôle de reproduction du leader.
Et il faudra se souvenir du critère d'arrêt : une nouvelle source ne rouvre la campagne que si elle apporte de l'information là où il en manque — c'est-à-dire sur les 758 matchs du noyau dur, pas ailleurs.
Le mot de la fin¶
Un modèle à 0.2041 de Brier et 67,9 % d'exactitude, calibré, interprétable coefficient par coefficient, tournant en production avec un ré-entraînement quotidien. Deux cibles manquées de peu et assumées comme telles. Douze idées enterrées avec leurs chiffres. Trois incidents d'infrastructure documentés. Une fuite du futur découverte en rédigeant la documentation. Un critère d'arrêt observé plutôt que décrété.
C'est le bilan complet, et il est volontairement présenté dans cet ordre : le modèle en premier parce que c'est ce qu'on attendait, tout le reste ensuite parce que c'est ce qui vaut le plus.
Il manque une ligne à ce bilan, écrite après coup : le duel contre les bookmakers, longtemps théorique, a fini par être mesuré — et il s'est révélé être une question de protocole bien plus que de modèle. C'est la partie Contre le marché, et c'est la suite naturelle de ce chapitre.
À retenir
Une campagne réussie n'est pas celle qui atteint sa cible. C'est celle qui sait, à la fin, pourquoi elle ne l'a pas atteinte — et qui peut le démontrer.
Chapitre précédent : Leçons généralisables · Partie suivante : Contre le marché · Annexes · Retour à l'accueil du cours