English version: https://dev.to/ewan147/my-betting-model-looked-great-for-3671-predictions-it-never-beat-the-bookmaker-504g
Pendant 16 jours, j'ai noté chaque probabilité annoncée par mon modèle de paris sportifs avant un match, puis ce qui s'est réellement passé : 3 671 prédictions réglées.
Selon les indicateurs habituels, il avait l'air bon :
score de Brier 0,1629 (plus bas = mieux) ;
30,8 % meilleur que de toujours prédire le taux de base ;
erreur de calibration (ECE) de 3,0 % : il annonçait 37,8 % en moyenne, il s'est produit 38,2 %.
Je vous aurais dit qu'il marchait. Il ne marchait pas.
Meilleur que quoi ?
Un score de Brier seul mesure surtout la difficulté des questions. La seule question qui compte pour parier : est-il meilleur que les cotes du bookmaker ?
Sur les 510 prédictions pour lesquelles j'avais la probabilité du bookmaker (marge retirée) sur la même issue :
Brier
Mon modèle 0,1874
Le bookmaker 0,1863
L'écart apparié est de +0,00105, avec un intervalle de confiance à 95 % de [−0,00063 ; +0,00276]. Il penche légèrement contre moi, et il est trop petit pour être distingué de zéro. Verdict : indiscernable du marché. Un modèle qui égale le bookmaker ne peut pas gagner contre sa marge.
Le chiffre qui m'aurait fait gagner des semaines
La mesure la plus utile ne demande aucun résultat de match : l'écart entre mes probabilités et celles du bookmaker.
écart médian : 1,0 point ;
corrélation : 0,9941.
Mon modèle ne prédisait pas le football : il recopiait les cotes qu'on lui donnait et les déplaçait un peu. Un modèle aussi ancré ne peut pas battre sa référence, par construction. Et c'était mesurable dès le premier jour, avant le moindre match.
L'outil
J'en ai fait un outil open source, eval-pack : zéro dépendance, du TypeScript simple sous Node ≥ 22.6. Sa règle principale : pas de verdict sans référence. Si vous ne lui dites pas ce que votre système doit battre, il refuse de le noter.
Pour reproduire tous les chiffres de cet article :
git clone https://github.com/ewan147/llm-eval-public
cd llm-eval-public/pack
node cli.ts run forecast
Les données sont réelles et anonymisées (aucun nom d'équipe, de joueur, d'opérateur ni de personne, aucun montant).
Ça marche pareil pour les systèmes à base de LLM : un classifieur, un RAG, un juge, un agent. « Le nouveau modèle est-il meilleur ? » est la même question que « mon modèle bat-il le bookmaker ? » : meilleur que quoi, sur combien de cas appariés, avec quel intervalle de confiance.