Mettre à l'échelle les fonctionnalités avant de les diviser en train/test.
→Diviser d'abord, puis ajuster les transformateurs uniquement sur l'ensemble d'entraînement et les appliquer (`transform`) à l'ensemble de test. Envelopper les étapes dans un scikit-learn Pipeline.
Pourquoi: L'ajustement sur l'ensemble de données complet introduit des statistiques de test dans l'entraînement et gonfle les scores d'évaluation.
Une colonne numérique a 8% de valeurs manquantes.
→Imputer avec la médiane (robuste à l'asymétrie) via `SimpleImputer` ; considérer un indicateur de valeurs manquantes.
Pourquoi: La médiane résiste aux valeurs aberrantes ; un indicateur préserve le signal lorsque l'absence elle-même est informative.
Une colonne catégorielle présente des lacunes.
→Imputer avec le mode ou une catégorie explicite "Inconnu" / "Manquant".
Pourquoi: Une catégorie explicite conserve le modèle d'absence comme un signal utilisable plutôt que de supprimer des lignes.
Fonctionnalité nominale à faible cardinalité (par ex. région avec 5 valeurs).
→Appliquer un encodage one-hot (`OneHotEncoder`) ; supprimer une colonne si le modèle n'a pas besoin de colinéarité.
Pourquoi: L'encodage one-hot évite d'imposer un faux ordre sur les catégories nominales ; la suppression d'un niveau évite le piège des variables muettes.
La fonctionnalité a un ordre naturel (faible / moyen / élevé).
→Utiliser un encodage ordinal qui préserve le rang.
Pourquoi: L'encodage one-hot ignorerait l'ordre ; l'encodage tenant compte du rang permet au modèle de l'exploiter.
Catégorique avec des milliers de niveaux (par ex. code postal).
→Utiliser l'encodage par cible/fréquence ou le regroupement plutôt que l'encodage one-hot.
Pourquoi: L'encodage one-hot fait exploser la dimensionnalité ; l'encodage par cible est compact mais doit être ajusté à l'intérieur de la CV pour éviter les fuites.
Les fonctionnalités couvrent des échelles très différentes avant un modèle basé sur la distance.
→StandardScaler (moyenne nulle, variance unitaire) pour les fonctionnalités approximativement gaussiennes ; MinMaxScaler pour borner [0,1].
Pourquoi: KNN, SVM, PCA, et la descente de gradient sont sensibles à l'échelle ; les modèles arborescents ne le sont pas.
Une fonctionnalité positive asymétrique à droite nuit à un modèle linéaire.
→Appliquer une transformation logarithmique ou de puissance Box-Cox/Yeo-Johnson pour compresser la queue.
Pourquoi: Réduire l'asymétrie stabilise la variance et linéarise les relations pour les modèles linéaires et basés sur la distance.
Vouloir capturer un effet d'âge non linéaire dans un modèle linéaire.
→Binariser la fonctionnalité continue en plages (largeur égale ou quantile) et la traiter comme catégorielle.
Pourquoi: Le binnage permet aux modèles linéaires de capturer les changements par étapes, au prix d'une certaine perte d'informations.
Les valeurs extrêmes authentiques déstabilisent l'entraînement du modèle.
→Limiter/winsoriser à un percentile ou utiliser un scaler robuste ; supprimer uniquement les erreurs confirmées.
Pourquoi: Le capping limite l'influence des extrêmes tout en conservant les enregistrements ; la suppression perd le signal réel des événements rares.
La classe positive ne représente que 3% des lignes d'entraînement.
→Rééchantillonner — SMOTE/suréchantillonner la minorité ou sous-échantillonner la majorité — en ajustant uniquement sur le pli d'entraînement ; ou définir des poids de classe.
Pourquoi: Équilibrer l'ensemble de test donnerait une fausse lecture ; le rééchantillonnage doit se faire à l'intérieur du pipeline d'entraînement.
Les horodatages et montants bruts sous-performent.
→Construire des fonctionnalités — jour de la semaine, temps écoulé depuis le dernier événement, ratios, agrégats par client.
Pourquoi: Les fonctionnalités dérivées informées par le domaine ajoutent souvent plus de gain que de changer l'algorithme.
Des centaines de fonctionnalités, beaucoup redondantes ou bruitées.
→Sélectionner via des méthodes de filtre (corrélation/information mutuelle), d'enveloppe (RFE) ou intégrées (L1/importances des arbres).
Pourquoi: Moins de fonctionnalités pertinentes réduisent le surapprentissage, le coût d'entraînement et améliorent l'interprétabilité.
De nombreuses fonctionnalités numériques corrélées ralentissent l'entraînement et surapprennent.
→Appliquer PCA pour projeter sur les principales composantes capturant la majeure partie de la variance ; mettre à l'échelle d'abord.
Pourquoi: PCA élimine la multicollinéarité et compresse la dimensionnalité, échangeant une certaine interprétabilité contre la stabilité.
Plusieurs étapes de pré-traitement doivent s'appliquer identiquement à l'entraînement et au service.
→Enchaîner les imputeurs, les encodeurs et les scalers dans un `Pipeline` / `ColumnTransformer` ajusté uniquement sur les données d'entraînement.
Pourquoi: Un seul pipeline ajusté garantit des transformations cohérentes et empêche les fuites entre les plis.
Référence↗
Une colonne de date brute ajoute peu de valeur prédictive.
→Décomposer en année, mois, jour de la semaine, est-week-end et encodages cycliques sin/cos.
Pourquoi: Les modèles ne peuvent pas lire la sémantique du calendrier à partir d'un horodatage brut ; les parties explicites exposent la saisonnalité.