Aller au contenu

É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