Par Elisha Bajemon, Ingénieur IA chez TW3 Partners. Dernière mise à jour : 15 novembre 2026.
En bref
La normalisation par quantiles situe chaque valeur par rapport à un ensemble de référence : le choix de cet ensemble détermine le sens du score. Pour une direction qui compare des indicateurs, cette référence fait donc partie de la décision. Selon la documentation de scikit-learn, la transformation apprend la répartition des valeurs et ramène les nouvelles observations hors plage aux bornes de sortie. L’ajustement doit rester séparé des données réservées à l’évaluation. Dans la prépublication TW3 Scoring Without the Engine, déposée sur arXiv le 7 septembre 2026, la variante par quantiles satisfait 4 des 5 contrôles de validité sur le jeu de test, confirmant son rejet lors de la sélection sur l’entraînement. La démarche proposée ici consiste à documenter la référence, vérifier les valeurs limites et soumettre tout renouvellement à une nouvelle validation.
1. Que représente la position relative donnée par l’ECDF ?
L’ECDF situe une valeur par rapport aux observations d’un échantillon de référence. Pour des mesures exactes, cette fonction de répartition empirique associe à une valeur la proportion des observations de cet échantillon qui lui sont inférieures ou égales. La documentation de SciPy décrit cette estimation comme une fonction en escalier : pour des mesures exactes, chaque observation contribue au saut correspondant à sa valeur.
Cette définition implique une distinction utile pour le pilotage. Une mesure conserve son unité métier ; sa position relative dépend des observations retenues pour la comparaison. Changer l’échantillon peut donc modifier la position attribuée à une mesure identique. Pour interpréter un score normalisé, il faut connaître la population qui lui sert de référence.
La documentation de QuantileTransformer, chez scikit-learn, décrit une estimation de la fonction de répartition, calculée séparément pour chaque variable. Cette estimation permet une transformation vers une distribution uniforme, puis éventuellement vers une distribution normale. L’outil utilise des quantiles de référence pour discrétiser la fonction, c’est-à-dire la représenter par un ensemble de repères.
L’ECDF en escalier de l’échantillon et cette représentation par repères doivent être distinguées dans la spécification. Il est utile d’y inscrire la population retenue, la distribution de sortie et la convention de calcul. Le responsable métier peut alors vérifier que la comparaison porte sur les observations qu’il souhaite réellement rapprocher.
2. Comment ajuster la transformation sans fuite ?
La séparation des données précède l’apprentissage de la transformation. Le guide Common pitfalls and recommended practices de scikit-learn explique qu’utiliser, pendant l’apprentissage, des informations indisponibles au moment de la prédiction produit une fuite de données et des évaluations trop optimistes.
La procédure est explicite : appeler fit ou fit_transform sur les seules données d’entraînement, puis appliquer transform aux données réservées à l’évaluation avec le même objet ajusté. En validation croisée, où plusieurs partitions servent successivement à l’apprentissage et à l’évaluation, une Pipeline associe le prétraitement au modèle pour respecter cette séparation dans chaque pli.
Selon la documentation de QuantileTransformer, n_quantiles règle le nombre de repères de la fonction estimée. Si ce nombre dépasse l’effectif disponible, il est ramené au nombre d’observations. Demander davantage de repères ne fournit donc pas une approximation plus fine dans ce cas.
Le paramètre subsample limite les observations utilisées pour estimer les quantiles ; la valeur None désactive ce sous-échantillonnage. random_state contrôle l’aléatoire associé au sous-échantillonnage et au bruit de lissage. Passer un entier permet de reproduire les appels.
Pour la traçabilité, conserver les paramètres avec l’objet ajusté et l’identification des données d’entraînement. La reproductibilité du calcul et la pertinence de la séparation sont à contrôler ensemble : retrouver exactement un résultat ne suffit pas à établir la qualité de son évaluation.
3. Que deviennent les valeurs nouvelles ?
Une observation extérieure à la plage apprise est ramenée à une borne de sortie. Ce comportement est documenté par scikit-learn pour QuantileTransformer. Il a une conséquence directe : plusieurs valeurs distinctes, situées au-delà de la même extrémité, peuvent recevoir la même valeur transformée. Leur dépassement reste visible dans la mesure d’origine.
Le traitement des répétitions demande également de préciser la convention. Dans l’ECDF décrite par SciPy, les points de rupture sont les valeurs uniques de l’échantillon, et chaque observation contribue à un saut. Des valeurs répétées cumulent donc leurs contributions au même endroit. Entre les points de rupture, cette fonction reste constante.
Ces propriétés expliquent pourquoi conserver un ordre et conserver une distance sont des exigences différentes. Une fonction de répartition est non décroissante ; elle peut toutefois attribuer une même valeur à des entrées distinctes. Scikit-learn précise que sa transformation est non linéaire et peut déformer les corrélations linéaires entre variables initialement mesurées sur la même échelle.
Pour la recette, examiner les situations suivantes sur les données autorisées :
| Situation | Point à vérifier |
|---|---|
| Valeurs répétées | Convention de traitement des égalités et nombre de valeurs distinctes en sortie |
| Valeurs au-delà de la plage apprise | Rabattement aux bornes et conservation de la mesure d’origine |
| Zones peu représentées | Effet des repères retenus sur les écarts transformés |
Ce contrôle proposé permet de relier le comportement numérique à l’usage attendu du score.
4. Pourquoi l’agrégat peut-il réagir autrement ?
Transformer séparément les composantes d’un score peut modifier les écarts sur lesquels agit leur pondération. C’est une conséquence de la transformation non linéaire décrite par scikit-learn : conserver les coefficients d’une somme ne conserve pas nécessairement l’effet d’une variation mesurée dans l’unité d’origine. L’échelle de chaque composante participe à son influence dans l’agrégat.
La prépublication TW3 Scoring Without the Engine, déposée sur arXiv le 7 septembre 2026, compare notamment une famille linéaire sur les valeurs brutes, une famille avec transformation par racine carrée et une famille linéaire après transformation par quantiles, appelée famille C. Chacune est réajustée sur la partie entraînement. Cette comparaison porte donc sur des stratégies complètes, avec leurs ajustements respectifs.
Dans les résultats de confirmation sur le jeu de test, la famille C satisfait 4 des 5 contrôles. Ce résultat confirme le rejet décidé sur les données d’entraînement. Elle échoue au contrôle de réponse aux interventions successives : la variation minimale entre deux doses consécutives est de −2,27 points, alors que le protocole exige une variation supérieure ou égale à −0,5 point. Ces nombres décrivent le protocole de cette prépublication ; ils ne constituent pas des seuils de recette pour une autre métrique.
La conséquence pratique est de valider l’agrégat après normalisation. TW3 recommande de décrire les variations métier auxquelles le score doit répondre, puis de vérifier leur effet sur le résultat final. Cette adaptation est une proposition de méthode : les critères d’acceptation restent à définir pour la décision concernée.
5. Comment tester une renormalisation ?
Une renormalisation se teste en reprenant les contraintes qui ont justifié l’adoption de la métrique. Dans Scoring Without the Engine, prépublication TW3 déposée sur arXiv le 7 septembre 2026, un essai distinct renormalise par percentiles des composantes saturées. Il supprime l’effet plafond et préserve la mesure d’alignement retenue par les auteurs, mais rompt le contrôle de réponse aux doses. Le protocole conduit à conserver les composantes initiales.
Ce résultat donne une raison concrète de séparer la dispersion du score et sa validité. Une sortie plus étalée peut être utile à la lecture, tout en modifiant une propriété nécessaire à la décision. L’examen doit porter sur les contraintes retenues avant l’essai et sur les comportements obtenus après transformation.
Pour transposer cette démarche, nous proposons une recette où la référence actuelle et la référence candidate sont évaluées sur un même jeu de validation, distinct du test final. Conserver les mesures d’origine permet de retrouver les cas dont la position a changé. Consigner ensuite les égalités nouvellement créées, les valeurs rabattues aux bornes et les décisions modifiées lorsqu’un seuil métier est utilisé.
Chaque changement doit être rapproché d’un critère d’acceptation fixé avant la comparaison. Une meilleure répartition visuelle peut motiver l’étude d’une variante ; la décision d’adoption repose sur les tests. Le livrable attendu est un rapport reliant chaque contrainte au résultat observé, avec une conclusion explicite pour la version candidate.
6. Quand faut-il geler ou renouveler la référence ?
La référence se gèle pendant une évaluation ; son renouvellement doit faire l’objet d’une décision documentée. Le guide de scikit-learn sur les pratiques de prétraitement demande d’appliquer aux données suivantes les transformations apprises sur l’entraînement. La règle fournit un point de départ pour organiser le suivi d’une métrique.
La pratique proposée consiste à garder l’objet ajusté avec sa version, les règles de constitution du corpus et la période couverte. Suivre ensuite la distribution des mesures d’origine et la fréquence des sorties aux bornes. Ces observations permettent d’instruire un éventuel décalage entre la population courante et celle de référence.
Un changement de population et un changement d’échelle appellent des décisions distinctes. Avec une référence figée, on examine les nouvelles observations selon une convention stable. Avec une référence renouvelée, on redéfinit la population à laquelle elles sont comparées. Cette seconde opération doit donc être annoncée aux utilisateurs du score et accompagnée des résultats de la recette comparative.
Le guide distingue aussi la reproductibilité des partitions et la variabilité des estimateurs aléatoires. Pour comparer les versions, conserver des partitions identiques et consigner les paramètres d’aléatoire utilisés. Prévoir enfin la possibilité de recalculer l’ancienne version pendant la transition. Cette procédure proposée évite de confondre une évolution des mesures et une modification volontaire de leur référence.
FAQ
La position relative est-elle une probabilité prédite ?
La position relative situe une mesure dans la distribution de référence. L’ECDF décrite par SciPy estime une répartition à partir d’un échantillon ; interpréter son résultat comme la probabilité d’un événement métier futur demanderait une autre justification. La définition de la sortie doit préciser ce qu’elle mesure.
Peut-on ajuster sur toutes les données ?
L’ajustement respecte la séparation prévue pour l’évaluation. Le guide scikit-learn réserve fit et fit_transform à l’entraînement, puis utilise transform sur le jeu de test. Une transformation apprise avant la séparation introduirait des informations du test dans la construction du système évalué.
Que fait une valeur hors plage ?
Selon sa documentation scikit-learn, QuantileTransformer la ramène à la borne correspondante de la distribution de sortie. Des dépassements de tailles différentes peuvent alors devenir indiscernables dans la variable transformée. Conserver la mesure initiale permet de les examiner lors du suivi proposé.
Les distances sont-elles conservées ?
La transformation documentée par scikit-learn est non linéaire. Les écarts entre valeurs et les corrélations linéaires peuvent changer. Une utilisation fondée sur des distances doit donc inclure leur vérification dans sa recette.
Quand refaire la transformation ?
Dans la procédure proposée, le renouvellement intervient après examen du corpus et validation d’une référence candidate. Documenter la raison du changement et comparer les versions sur des observations communes. La date de bascule appartient alors à l’historique de la métrique.
Pour aller plus loin
- Transformer un score : quand l’ordre est conservé et quand il change
- Effet plafond : diagnostiquer une métrique qui ne distingue plus les observations
- Fuite par prétraitement : normaliser et imputer dans chaque pli
Sources
- TW3 Partners, Scoring Without the Engine, prépublication déposée sur arXiv le 7 septembre 2026, notice, texte intégral HTML et PDF consultés le 9 octobre 2026.
- scikit-learn, QuantileTransformer, documentation stable sans date de publication affichée, consultée le 9 octobre 2026.
- scikit-learn, Common pitfalls and recommended practices, documentation stable sans date de publication affichée, consultée le 9 octobre 2026.
- SciPy, scipy.stats.ecdf, documentation sans date de publication affichée, consultée le 9 octobre 2026.