Aller au contenu

Les modèles d'apprentissage

Jusqu'ici, prédire un match voulait dire consulter une horloge : un rating qui se met à jour après chaque partie et qui, seul, produit une probabilité. Glicko, Elo à marge, TrueSkill, Glicko-2, pi-ratings — chacun résume une équipe (ou cinq joueurs) en un nombre, et compare deux nombres. C'est l'objet de la partie précédente.

Cette partie commence là où les horloges s'arrêtent. Une horloge ne sait pas que le match est sur LAN, que l'une des deux équipes a changé deux joueurs la semaine dernière, qu'elle sort de trois jours de repos, ou que son map pool est troué. Un modèle d'apprentissage sait combiner tout cela : on lui donne un vecteur de descripteurs (les features) et il apprend, sur des milliers de matchs passés, quel poids donner à chacun.

Ce que fait un modèle, exactement

Le contrat est toujours le même, quel que soit l'algorithme :

         ┌──────────────────────────────────────────────┐
         │  features du match (connues AVANT le match)   │
         │  écart de rating, forme, LAN, stats joueurs…  │
         └──────────────────┬───────────────────────────┘
                            │
                            ▼
                   ┌──────────────────┐
                   │  f(x) → nombre   │   ← l'algorithme apprend f
                   └────────┬─────────┘
                            │
                            ▼
              p = probabilité que l'équipe 1 gagne
                            │
                            ▼
        jugée au Brier : (p − y)² moyenné sur 1 146 matchs

Un point mérite d'être posé tout de suite : la sortie n'est pas un pronostic, c'est une probabilité. Dire « Vitality gagne » n'a pas de valeur mesurable ; dire « Vitality gagne avec 73 % de chances » en a une, parce qu'on peut vérifier, sur 250 matchs annoncés à 73 %, que 73 % ont bien été gagnés. C'est le rôle du score de Brier, détaillé dans Les métriques.

Le rôle de chaque famille

Trois familles d'algorithmes ont été essayées pendant la campagne, et une seule a gagné.

La régression logistique est le modèle linéaire de la classification binaire : elle somme les features pondérées et écrase le résultat entre 0 et 1. C'est le plus simple des trois, le plus ancien (1958), le plus interprétable — et c'est lui qui a fini premier avec un Brier de 0.2041. Le chapitre 1 explique pourquoi, et ce n'est pas « parce que le simple gagne toujours » : c'est parce que nos features étaient déjà, pour l'essentiel, des probabilités et des écarts de rating, c'est-à-dire des quantités où la frontière de décision est presque une droite.

Le gradient boosting (XGBoost) construit des centaines de petits arbres de décision qui se corrigent l'un l'autre. C'est la référence sur données tabulaires, et c'était le champion de départ du concours (Brier 0.2330). Il a perdu son titre dès que les features sont devenues riches. Le chapitre 2 le raconte sans caricature : le boosting n'est pas mauvais, il est simplement redondant quand le travail non linéaire a déjà été fait en amont, dans la construction des features.

Les mixtures et les blends ne sont pas un troisième algorithme mais une façon d'assembler les deux premiers, ou plusieurs copies du même. Le leader final est exactement cela : un modèle entraîné sur un segment de matchs, mélangé à un modèle global. Le chapitre 3 donne les mathématiques du mélange (qui se fait en logits, pas en probabilités) et la carte des segments — parce que la découverte la plus intéressante de la campagne est que la difficulté d'un match n'est pas uniforme : le Brier va de 0.1591 sur les matchs « horloges froides » à 0.2205 sur le Bo3 online entre équipes établies.

Le chapitre le plus utile est celui des échecs

Le chapitre 4 est un cimetière. Chaque méthode qui a échoué y est enterrée avec ses mathématiques et son autopsie chiffrée : deux tentatives de stacking, le GBDT→LR de Facebook, la calibration forcée (Platt, isotonique), le rétrécissement vers 50 %, la recomposition map par map, et deux méthodes écartées sans être testées (le k-NN, les réseaux de neurones) avec la raison exacte de leur mise à l'écart.

Ces échecs valent plus cher que les succès, pour une raison précise : ils délimitent le problème. Savoir que l'ensembling ne rapporte rien ici, c'est savoir que les cinq modèles de base voyaient tous la même chose — donc que le progrès viendra de nouvelles informations, jamais d'un meilleur assemblage des mêmes signaux.

Enfin, le modèle sert à quelque chose

Le chapitre 5 boucle la boucle. Le modèle de match n'est pas le produit fini : le produit fini est une probabilité d'invitation au Major, obtenue en simulant des milliers de fois les tournois restants. Cela pose des problèmes que la prédiction pure ignore — comment transformer une probabilité de manche en probabilité de série, quelles features peuvent « vivre » à travers une simulation et lesquelles doivent être gelées, et pourquoi une mesure a réduit la liste des horloges vivantes à trois.

Ordre de lecture

Les chapitres se lisent dans l'ordre ; le 1 est le socle (tout le reste est une variation autour de la régression logistique), le 4 peut se lire seul si vous avez déjà vécu un projet de machine learning qui n'a pas marché.

  1. La régression logistique — le modèle gagnant : sigmoïde, log-vraisemblance, régularisation L2, pondération par récence, standardisation. Et la question centrale : pourquoi une droite a battu des arbres.
  2. Le gradient boosting — arbres, boosting, learning rate, profondeur, early stopping. Nos paramètres réels et pourquoi ils sont si petits.
  3. Segments et blends — la mixture par régime, le blend 75/25 du leader final, l'algèbre du mélange de logits, la carte des segments.
  4. Le cimetière — toutes les méthodes mortes, avec leurs mathématiques et leur autopsie chiffrée.
  5. De la prédiction à la simulation — le Monte Carlo, les formules Bo3/Bo5, les features gelées, le ré-entraînement quotidien.

Le tableau de bord de la partie

Tous les chiffres cités dans cette partie viennent du même protocole : un holdout de 1 146 matchs (les 42 derniers jours), jamais utilisé pour entraîner ni pour choisir quoi que ce soit — voir Le protocole. Voici l'état final du concours, dans l'ordre où les modèles sont apparus au fil des chapitres.

Approche Brier Log-loss Accuracy Famille
segmodel 0.2041 0.5916 67.9 % logistique + mixture par segment
lastmile 0.2044 0.5931 67.5 % logistique, 54 features
assault 0.2054 0.5954 66.8 % logistique, 46 features
push 0.2172 0.6210 64.0 % logistique, 40 features
final 0.2180 0.6221 64.2 % logistique, 32 features
bayes 0.2256 0.6410 63.8 % XGBoost + TrueSkill
stack 0.2306 0.6515 60.1 % moyenne de logits (5 bases)
logreg 0.2315 0.6538 60.4 % logistique, 22 features
champion v2 (départ) 0.2330 0.657 60.4 % XGBoost, 10 features
Glicko Valve (baseline) 0.2422 0.6772 56.0 % horloge seule
bookmakers (littérature) 0.198 — 68.7 % —

Une comparaison n'est pas l'autre

Les dix premières lignes sont nos mesures, sur notre pool de matchs (tier 1 à tier 3 mélangés). La ligne bookmakers vient de la littérature, sur un pool tier 1 uniquement, où les équipes sont plus proches en niveau et donc les matchs plus difficiles à prédire. Les 0.198 ne sont pas « le score à battre sur nos données » : c'est un repère de difficulté, à manier avec la même prudence chaque fois qu'il apparaît dans les chapitres.

Ce que vous saurez faire à la fin

Lire une formule de modèle linéaire et savoir ce que chaque symbole représente. Régler une régularisation en comprenant ce qu'elle rétrécit. Reconnaître, devant un jeu de features, si les arbres ont une chance d'apporter quelque chose. Diagnostiquer un ensemble qui ne rapporte rien. Et surtout : distinguer un gain réel d'un gain de bruit, puisque c'est exactement l'erreur qui a été commise, mesurée, puis publiée dans le chapitre 4.

Le vocabulaire technique (Brier, log-loss, holdout, out-of-fold, calibration…) est défini dans le glossaire.