Leçon 3 — Les variables explicatives
Si vous ne retenez qu'une chose de ce cours, retenez celle-ci : sur des données tabulaires, la qualité des variables explicatives décide du résultat bien plus que le choix de l'algorithme. Un praticien expérimenté armé d'un modèle simple et de bonnes variables battra un débutant équipé du meilleur algorithme et des colonnes brutes.
Ce qu'est une variable explicative
Une variable explicative, ou feature, est une colonne que le modèle lit pour prédire. Le mot important est lit : le modèle ne comprend pas votre métier, il ne voit que des nombres et cherche des régularités. Tout ce que vous savez du métier et qui n'est pas encodé dans une colonne est perdu.
C'est exactement là que réside votre valeur ajoutée. Vous savez des choses que les données brutes ne disent pas.
Un exemple qui montre l'écart
Vous voulez prédire la résiliation d'un abonnement. Vos données brutes contiennent : date d'inscription, dates de connexion, montant des factures, dates des réclamations.
Variables naïves : la date d'inscription telle quelle, le montant de la dernière facture, le nombre total de réclamations.
Variables construites :
- L'ancienneté en mois plutôt que la date brute. Une date est un nombre arbitraire ; une ancienneté a un sens causal.
- Le nombre de jours depuis la dernière connexion. C'est probablement le meilleur signal du lot, et il n'existe dans aucune colonne d'origine.
- La tendance d'usage : la fréquence de connexion du dernier mois divisée par celle des trois mois précédents. Un rapport inférieur à 1 signale un désengagement en cours, ce qu'aucun décompte absolu ne montre.
- Le délai entre réclamation et résolution, plutôt que le simple nombre de réclamations. Trois réclamations résolues en une heure ne racontent pas la même histoire qu'une seule restée ouverte trois semaines.
- Un indicateur de hausse tarifaire récente, croisé avec l'ancienneté.
Le second jeu de variables produit, dans ce type de problème, un gain régulièrement supérieur à celui obtenu en passant d'une régression logistique à un gradient boosting. Et le second jeu se construit avec de la connaissance métier, pas avec des mathématiques.
Demandez à quelqu'un qui fait le travail à la main : « à quoi voyez-vous qu'un client va partir ? » Ses réponses — « il arrête de nous appeler », « il ne renouvelle pas ses options », « il commence à comparer » — sont des variables à construire. C'est la conversation la plus rentable d'un projet, et elle ne demande aucune compétence technique.
Les transformations qui reviennent toujours
Les variables catégorielles. Un modèle ne lit pas « France ». Il faut encoder. L'encodage one-hot crée une colonne binaire par valeur : sûr, mais ingérable si la variable a dix mille valeurs distinctes. L'encodage ordinal attribue un numéro : compact, et dangereux, car il introduit un ordre qui n'existe pas — le modèle croira que l'Allemagne est « entre » la France et l'Italie. Les arbres s'en accommodent, les modèles linéaires beaucoup moins.
Les dates. Une date brute est presque inutilisable. Ce qui porte le signal, ce sont ses composantes : jour de la semaine, mois, indicateur de jour férié, indicateur de fin de mois, et surtout les écarts — nombre de jours depuis l'événement précédent, durée depuis l'inscription. La saisonnalité hebdomadaire et annuelle explique souvent l'essentiel de la variation.
Les variables numériques. Les modèles linéaires et les réseaux exigent une mise à l'échelle : sans elle, une variable en centaines de milliers écrase une variable en unités, et l'entraînement converge mal. Les arbres et le boosting, eux, y sont totalement indifférents, ce qui est l'une des raisons de leur popularité.
Les distributions très asymétriques. Les montants, les revenus et les durées ont typiquement une longue traîne : beaucoup de petites valeurs, quelques valeurs énormes. Appliquer un logarithme rend la distribution plus régulière et améliore souvent nettement les modèles linéaires.
Le texte libre. Un champ de commentaire peut être transformé en variables simples — longueur, présence de mots-clés, sentiment — ou en vecteur d'embedding, ce que traite le cours NLP.
Les valeurs manquantes, et la question qu'il faut poser
Le réflexe est de supprimer les lignes incomplètes ou de remplacer les trous par la moyenne. Les deux peuvent être de graves erreurs, parce qu'ils supposent que l'absence est un accident.
Souvent, elle n'en est pas un. Trois situations très différentes :
L'absence est aléatoire. Un capteur a eu une coupure. Imputer par la moyenne ou la médiane est raisonnable.
L'absence dépend d'autre chose d'observable. Les revenus manquent surtout chez les jeunes clients, parce que le champ n'était pas obligatoire à l'ouverture. Imputer en tenant compte de cette dépendance est possible.
L'absence est elle-même le signal. Les clients mécontents ne répondent pas au questionnaire de satisfaction. Ici, supprimer les lignes supprime exactement l'information que vous cherchez, et imputer par la moyenne la détruit.
Ajoutez systématiquement une colonne indicatrice « cette valeur était manquante », en plus de l'imputation. Le modèle décide alors lui-même si l'absence porte du sens. Cela coûte une colonne et évite de trancher à l'aveugle une question que vous ne savez pas trancher.
La variable qui triche
Voici le piège qui invalide silencieusement des projets entiers. Une variable fuit quand elle contient, directement ou indirectement, l'information que vous cherchez à prédire — information qui ne sera pas disponible au moment de la vraie prédiction.
Des cas réels, tous authentiques dans leur logique :
- Prédire la résiliation en incluant la colonne « date de résiliation ». Le modèle atteint 100 % et ne sert à rien.
- Prédire une maladie en incluant « traitement prescrit ». Le traitement suit le diagnostic.
- Prédire un défaut de paiement en incluant « nombre de relances envoyées ». Les relances suivent le défaut.
- Prédire une panne en incluant un identifiant de ticket de maintenance créé après la panne.
Le symptôme est reconnaissable : une performance anormalement élevée. Un modèle à 99,8 % sur un problème métier difficile n'est presque jamais un exploit, c'est presque toujours une fuite.
Le test décisif tient en une question : cette information sera-t-elle disponible au moment où je devrai faire la prédiction en production ? Si la réponse est non, la variable doit sortir, quelle que soit sa contribution au score.
Trop de variables nuit aussi
Ajouter des colonnes n'améliore pas indéfiniment le modèle. Passé un certain point, chaque variable supplémentaire apporte plus de bruit que de signal, et le modèle se met à exploiter des coïncidences propres à votre échantillon. C'est un effet de la malédiction de la dimension : plus de dimensions demandent exponentiellement plus d'exemples pour être couvertes.
La sélection de variables consiste à ne garder que celles qui contribuent réellement. Trois approches usuelles : mesurer l'importance donnée par un modèle d'arbres, retirer les variables fortement corrélées entre elles puisqu'elles disent la même chose, et tester le retrait d'une variable pour voir si le score bouge.
Un modèle avec quinze bonnes variables est presque toujours préférable à un modèle avec trois cents variables douteuses : plus rapide, plus stable, plus facile à expliquer, et moins susceptible de dériver en production.
En trois phrases
Sur des données tabulaires, construire de bonnes variables explicatives rapporte davantage que changer d'algorithme, parce que le modèle ne connaît de votre métier que ce que les colonnes lui disent. Les transformations récurrentes sont l'encodage des catégories, la décomposition des dates en écarts et composantes, la mise à l'échelle pour les modèles linéaires, et l'ajout d'un indicateur de valeur manquante plutôt qu'une imputation aveugle. Le danger majeur est la variable qui fuit, reconnaissable à un score anormalement élevé, et le test décisif est de se demander si l'information sera disponible au moment de la prédiction réelle.
Suite — Leçon 4 : l'évaluation, et comment ne pas se mentir →