Réglages réels de Carlos, tels qu'ils sont dans le code| Bibliothèque | CatBoost, développée par Yandex |
|---|
| Objectif d'optimisation | YetiRank — classement, variante stochastique de LambdaRank |
|---|
| Structure | 1 000 itérations, profondeur 6 |
|---|
| Pas d'apprentissage | 0,05 |
|---|
| Graine aléatoire | 42, pour que deux entraînements donnent le même modèle |
|---|
| Matériel | carte graphique si CUDA répond, sinon processeur |
|---|
CatBoost se distingue par deux choses. D'abord le boosting ordonné : au lieu de calculer les statistiques d'une variable sur tout le jeu de données, il ne se sert que des lignes vues avant celle qu'il traite. Cela évite qu'une information sur le résultat ne remonte discrètement dans les variables — le genre de fuite qui donne des scores flatteurs à l'entraînement et rien du tout en production.
Ensuite le traitement natif des variables catégorielles : l'hippodrome, la discipline, le sexe du cheval n'ont pas besoin d'être transformés en colonnes de 0 et de 1. YetiRank ajoute du bruit contrôlé aux comparaisons de paires, ce qui le rend plus stable que LambdaRank quand une course compte peu de partants.
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.