Réglages réels de Gisèle, tels qu'ils sont dans le code| Bibliothèque | LightGBM |
|---|
| Objectif d'optimisation | lambdarank — apprendre un ordre, pas une probabilité |
|---|
| Métrique suivie | NDCG, évaluée aux rangs 1, 3 et 5 |
|---|
| Structure | 500 arbres, 63 feuilles, 20 partants minimum par feuille |
|---|
| Pas d'apprentissage | 0,05 |
|---|
| Échantillonnage | 80 % des variables et 80 % des lignes à chaque arbre |
|---|
| Matériel | carte graphique si disponible, repli sur le processeur |
|---|
LambdaRank ne compare pas un cheval à la vérité, il compare les chevaux entre eux. Pour chaque paire d'une même course, il regarde de combien le classement s'améliorerait si on les échangeait, et pousse le modèle dans cette direction. Le NDCG mesure la qualité de l'ordre obtenu en donnant plus de poids aux premières places qu'aux dernières.
Conséquence à connaître : le score sorti n'est pas une probabilité. Il n'est borné ni en haut ni en bas — sur nos données il va de −2,0 à +3,0, et un tiers des valeurs sont négatives. Le diviser par la somme des scores d'une course pour en faire un pourcentage, comme nous l'avons fait un temps, produit des nombres qui n'ont aucun sens et fausse toute comparaison au marché.
Ce que les dix ont en commun
Tous apprennent sur le même corpus : 147 095 courses et 1 824 611 partants depuis 2015, décrits par 38 variables — cote de référence, forme récente lue dans la musique, taux de réussite du jockey et de l'entraîneur, allocation, distance, corde, poids, déferrage, âge, sexe, jours depuis la dernière sortie, et le reste.
Le jeu d'entraînement complet — 1,8 million de partants sur 38 variables — occupe environ 550 Mo une fois chargé en mémoire, avant l'empreinte des structures de calcul. C'est ce qui fixe le besoin réel : de la RAM, pas de la puissance brute.
L'entraînement tente d'abord la carte graphique (CUDA) et bascule seul sur le processeur si elle n'est pas disponible : le modèle obtenu est le même, seul le temps de calcul change. Les fichiers produits sont légers — de 1 à 4,6 Mo selon le modèle — et tiennent tous dans un dossier de quelques dizaines de mégaoctets.
La prédiction quotidienne, elle, ne demande aucun matériel particulier : charger les dix modèles et noter toutes les courses d'une journée prend quelques secondes sur un processeur ordinaire. Le coût du projet est dans la donnée et son historique, pas dans le calcul.
Les prédictions et les résultats vivent dans une base Postgres ; les campagnes d'évaluation sont rejouées dans un fichier analytique local de 347 Mo, sur disque SSD — la validation glissante relit des millions de lignes par passe et le débit disque devient le facteur limitant bien avant le processeur.
Ce que nous ne publions pas : la recette exacte d'entraînement et le détail de la construction des variables. Au pari mutuel, une sélection suivie par trop de monde fait s'effondrer sa propre cote — la preuve du sérieux est dans le journal des paris, pas dans la recette.