Turf Insights
Plateforme d'analyse avancée pour les courses hippiques - Visualisations, Clusters & Prédictions IA
Vue d'ensemble
📊 Statistiques Globales
Segments chevaux
Clusters commentaires runners
Clusters chevaux V1
Clusters chevaux V2 (Enrichi)
Analyse par Clusters
💬 Clusters Commentaires Runners
Selectionne un cluster
Les 20 commentaires les plus proches apparaitront ici.
🐴 Clusters Chevaux V1
Selectionne un cluster
Profil moyen et top chevaux apparaitront ici.
🎯 Clusters Chevaux V2 (Enrichi)
Segmentation basée sur 58 features incluant âge, sexe, performance, prestige, clusters de courses et commentaires.
Selectionne un cluster
Profil moyen, distribution des grades et top chevaux apparaitront ici.
🏁 Clusters Courses
Selectionne un cluster
Profil moyen et exemples de courses apparaitront ici.
🏆 Top Chevaux (Win Rate)
| Cheval | Runs | Wins | Places |
|---|---|---|---|
| Let's Go Landemer #1720502 | 7 | 4 | 5 |
| Marinella Vrie #1719615 | 7 | 4 | 5 |
| Mila des Couperies #1720530 | 6 | 3 | 5 |
| Jurilovca #1538213 | 25 | 12 | 12 |
| Bellodam #1708032 | 13 | 6 | 8 |
| Coûte Que Coûte #1696577 | 11 | 5 | 6 |
| Katchi Quick #1576052 | 18 | 8 | 10 |
| Kassiopée Wind #1561752 | 23 | 9 | 11 |
| Justice Brickell #1506191 | 28 | 9 | 15 |
| Joshua Péji #1527621 | 36 | 11 | 15 |
Système de Grading - Nutriscore Chevaux
📋 Méthodologie du Grade
Le grade est un indicateur de qualité inspiré du Nutriscore, calculé à partir de 4 dimensions.
🏆 Prestige (~100%)
Niveau moyen des courses disputées (dotations, catégorie). Calculé comme le percentile des dotations moyennes.
📊 Performance (Bonus)
Taux de victoire et de place. Percentile du ratio victoires/courses et places/courses.
📈 Régularité (Bonus)
Constance des performances. Inverse de l'écart-type des classements.
⚡ Forme Récente (Bonus)
Performance sur les 5 dernières courses. Rang moyen des dernières sorties.
🎯 Échelle des Grades
Élite - Top 20%
Bon niveau
Niveau moyen
Niveau faible
Débutant/Faible
📊 Distribution des Grades
Répartition des chevaux par grade dans la base de données.
📈 Statistiques Détaillées par Grade
Moyennes des indicateurs clés pour chaque niveau de grade.
| Grade | Label | Chevaux | % | Score Moy. | Prestige | Perf. | Régularité | Forme | Gains Moy. | Victoires | Courses |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chargement... | |||||||||||
Méthodologie des Segmentations
📊 Méthode de Segmentation - Commentaires Runners
🎯 Objectif
Regrouper automatiquement les commentaires de courses similaires pour identifier des patterns récurrents dans les observations des analystes.
📥 Variables d'entrée
- Embeddings vectoriels : Représentations numériques des commentaires textuels générées via modèle de langage (dimension 1536)
- Source : Table
public.runner_comment_embeddings
⚙️ Algorithme
- Méthode : K-Means clustering
- Nombre de clusters : 20
- Preprocessing : Embeddings normalisés (L2)
- Labellisation : Labels générés automatiquement via GPT-5 Mini à partir d'exemples représentatifs
🔑 Critères clés
- Similarité sémantique : Les commentaires sont groupés selon leur sens, pas leur formulation exacte
- Distance cosinus : Métrique utilisée pour mesurer la proximité entre embeddings
- Cohérence thématique : Chaque cluster représente un type de commentaire spécifique (ex: "Favoris dominants", "Chevaux réguliers", etc.)
📊 Résultat
- 20 clusters avec labels descriptifs en français
- Tables générées :
runner_comment_clusters: Assignation commentaire → clusterrunner_comment_cluster_labels: Labels et exemples
🐴 Méthode de Segmentation - Chevaux
🎯 Objectif
Créer des profils de chevaux basés sur leurs performances et le type de commentaires qu'ils reçoivent.
📥 Variables d'entrée
- Statistiques de performance (source :
public.horse_360) :total_prize: Total des gains (€)wins: Nombre de victoiresplaces: Nombre de places (top 3)
- Profil des commentaires (source :
public.horse_comment_cluster_counts) :- Proportions de chaque type de commentaire (20 dimensions)
- Exemple : 30% de commentaires "Favoris dominants", 20% "Chevaux réguliers", etc.
⚙️ Algorithme
- Preprocessing :
- Transformation logarithmique (log1p) pour réduire l'asymétrie des gains et victoires
- Normalisation StandardScaler
- Réduction de dimension :
- UMAP (Uniform Manifold Approximation and Projection)
- Paramètres :
n_components=2,n_neighbors=10,min_dist=0.5 - Entraîné sur échantillon de 30,000 chevaux (random_state=42)
- Clustering :
- K-Means sur l'espace UMAP
- Nombre de clusters : 30
n_init=50,max_iter=500
- Labellisation : Labels générés via GPT-5 Mini + noms descriptifs automatiques
🔑 Critères clés
- Performance financière : Gains moyens par cluster (de "Débutants" à "Champions")
- Taux de succès : Nombre de victoires et places
- Profil comportemental : Types de commentaires associés
- Taille du groupe : Nombre de chevaux par cluster
📊 Résultat
- 30 clusters avec profils détaillés
- Métriques moyennes : gains, victoires, places (transformées inverse avec expm1)
- Tables générées :
horse_clusters_v1: Assignation cheval → clusterhorse_clusters_v1_profiles: Statistiques agrégéeshorse_clusters_v1_labels: Labels descriptifs
🏁 Méthode de Segmentation - Courses
🎯 Objectif
Classifier les courses selon leurs caractéristiques techniques et contextuelles pour identifier des types de courses homogènes.
📥 Variables d'entrée
Source : Table public.common_race_prod
Variables catégorielles (5) :
country: Pays de la coursediscipline: TROT ou GALOPsurface: Type de piste (gazon, sable, etc.)class: Niveau de la coursespecialty: Spécialité (plat, obstacles, etc.)
Variables numériques (9) :
distance: Distance de la course (mètres)total_prize: Montant total des gains (€)number_of_runners: Nombre de partantsmin_age/max_age: Âge minimum/maximum des chevauxautostart: Départ auto (booléen)is_premium: Course premium (booléen)is_tqq: Course TQQ (booléen)
⚙️ Algorithme
- Preprocessing :
- Imputation des valeurs manquantes :
'unknown'(catégorielles),0(numériques) - One-hot encoding des 5 variables catégorielles
- Transformation logarithmique :
log1p(distance)etlog1p(total_prize) - Normalisation StandardScaler avec
with_mean=False
- Imputation des valeurs manquantes :
- Clustering :
- K-Means directement sur les features normalisées
- Nombre de clusters : 20
- Paramètres par défaut scikit-learn
- Noms générés automatiquement basés sur distance et gains moyens
🔑 Critères clés
- Distance moyenne : De sprints (< 1200m) à courses longues (> 3000m)
- Niveau de gains : De courses modestes à Groupes prestigieux
- Discipline dominante : Trot vs Galop
- Taille du champ : Nombre moyen de partants
- Type de surface : Distribution par type de piste
📊 Résultat
- 20 clusters avec profils moyens
- Distribution par discipline : Visualisation Trot/Galop séparée
- Tables générées :
race_clusters_v1: Assignation course → clusterrace_clusters_v1_profiles: Statistiques agrégées (distance, gains, partants)
Recherche Avancée
🔍 Cheval 360°
Selectionne un cheval
Profil, stats, distribution par surface/going et derniers parcours.
Générateur IA
🤖 Génération Automatique de Fiche
Génère automatiquement une fiche détaillée en Markdown pour n'importe quel cheval avec analyse par intelligence artificielle et vérification anti-hallucination.