Objectif de ce chapitre : transformer des données brutes, imparfaites et hétérogènes en un jeu de données propre, exploitable et informatif pour les algorithmes de Machine Learning.
En pratique, la préparation des données représente 70 à 80 % du temps d’un projet Data Science. C’est une étape décisive : un bon modèle sur de mauvaises données donnera systématiquement de mauvais résultats.
Analyse Exploratoire (EDA)
L’Analyse Exploratoire des Données (Exploratory Data Analysis — EDA) est la première étape après la collecte. Elle vise à comprendre la structure, les distributions et les relations présentes dans les données avant toute modélisation.
L’EDA ne consiste pas à appliquer mécaniquement des fonctions : c’est un dialogue entre le Data Scientist et les données, guidé par des questions métier. Pourquoi certaines valeurs semblent-elles extrêmes ? Les classes sont-elles équilibrées ? Les variables sont-elles corrélées entre elles ?
Statistiques descriptives
Les statistiques descriptives donnent un premier aperçu synthétique du jeu de données. Elles se lisent en deux temps : d’abord la structure, puis les indicateurs numériques.
Structure générale
Avant tout calcul, il convient d’inspecter la forme brute du jeu de données :
- Dimensions : nombre de lignes (observations) et de colonnes (variables)
- Types de variables : numériques, catégorielles, dates, textes libres
- Valeurs manquantes : combien, où, selon quel mécanisme
- Doublons : lignes identiques à identifier et supprimer
Cette inspection révèle souvent des problèmes invisibles à l’œil nu : colonnes mal typées, identifiants encodés comme numériques, variables textuelles contenant des valeurs numériques.
Résumé statistique
Pour chaque variable numérique, les indicateurs fondamentaux sont les suivants :
| Indicateur | Ce qu’il révèle |
|---|---|
| Moyenne (mean) | Tendance centrale ; sensible aux valeurs extrêmes |
| Médiane (50%) | Tendance centrale robuste ; un écart mean/médiane signale une asymétrie |
| Écart-type (std) | Dispersion ; grande valeur → variable très étalée |
| Min / Max | Plage de valeurs ; révèle des outliers potentiels |
| Q1 (25%) / Q3 (75%) | Distribution interquartile, robuste aux extrêmes |
La comparaison systématique de la moyenne et de la médiane est l’un des premiers réflexes à acquérir : un écart important entre les deux signale une distribution asymétrique, ce qui oriente les choix de prétraitement.
Indicateurs de forme de distribution
Au-delà de la tendance centrale et de la dispersion, deux indicateurs caractérisent la forme d’une distribution :
La skewness (asymétrie) mesure le degré d’asymétrie d’une distribution autour de sa moyenne. Une skewness nulle indique une distribution symétrique (comme la loi normale). Une valeur positive indique une queue étirée vers la droite (revenus, prix immobiliers), une valeur négative une queue vers la gauche.
Le kurtosis (aplatissement) mesure la “lourdeur” des queues de distribution. Une kurtosis élevée (> 3) indique des queues plus épaisses que la loi normale, c’est-à-dire un risque accru de valeurs extrêmes.
- |Skewness| > 1 → distribution fortement asymétrique → transformation recommandée (log, racine carrée)
- Kurtosis > 3 → queues lourdes → valeurs extrêmes fréquentes → vigilance sur les outliers
Visualisation des données
La visualisation est indispensable pour détecter ce que les statistiques seules ne révèlent pas. Le célèbre quartet d’Anscombe (1973) illustre parfaitement ce point : quatre jeux de données ont exactement les mêmes statistiques descriptives (moyenne, variance, corrélation) mais des distributions visuellement complètement différentes.
Distribution des variables
L’histogramme est le premier graphique à produire pour chaque variable numérique. Il révèle :
- La forme de la distribution (unimodale, bimodale, asymétrique)
- La présence de valeurs aberrantes (queues très étirées)
- Les différences de distribution entre classes (en superposant les histogrammes par classe cible)
Une distribution bimodale (deux pics) est souvent le signe que la variable contient des sous-populations distinctes — une information précieuse pour la modélisation.
Boxplots comparatifs
Le boxplot (boîte à moustaches) résume en un seul graphique cinq statistiques : minimum, Q1, médiane, Q3, maximum. Les points au-delà des moustaches (généralement \(\pm 1{,}5 \times IQR\)) sont représentés individuellement et constituent des candidats outliers.
En comparant les boxplots par classe cible, on visualise rapidement le pouvoir discriminant de chaque variable : une variable dont les médianes sont bien séparées entre classes sera probablement informative pour la prédiction.
Pairplot (nuage de points croisés)
Le pairplot (ou scatter matrix) affiche tous les nuages de points entre paires de variables. C’est un outil puissant pour détecter :
- Les relations linéaires entre variables (collinéarité)
- Les structures non linéaires (arcs, clusters)
- La séparabilité des classes dans différents sous-espaces de features
Il devient illisible au-delà d’une dizaine de variables — on le restreint alors aux variables les plus prometteuses, identifiées par les scores de corrélation.
Analyse des corrélations
Matrice de corrélation
La matrice de corrélation de Pearson quantifie les relations linéaires entre toutes les paires de variables numériques. Ses valeurs sont comprises entre \(-1\) (corrélation négative parfaite) et \(+1\) (corrélation positive parfaite), avec \(0\) indiquant l’absence de relation linéaire.
Elle est représentée sous forme de heatmap (carte de chaleur), généralement en triangle inférieur pour éviter la redondance. On y cherche :
- Des blocs de variables fortement corrélées entre elles (> 0,85) : signe de multicolinéarité, problématique pour les modèles linéaires et les arbres peu profonds
- Des variables fortement corrélées avec la cible : candidates naturelles à conserver en priorité
Corrélation avec la variable cible
En classification ou régression supervisée, le calcul de la corrélation de chaque feature avec la variable cible donne un premier classement rapide des variables les plus informatives. Ce classement est imparfait — il ne capte que les relations linéaires — mais il oriente efficacement l’exploration.
- Corrélations élevées entre features (> 0,85) → multicolinéarité → envisager une réduction de dimension ou une sélection de variables
- Corrélations élevées avec la cible → variables potentiellement très informatives
- Pearson ne capte que les relations linéaires → compléter avec Spearman (rangs) ou l’information mutuelle pour les relations non linéaires
Prétraitement
Le prétraitement transforme les données brutes pour les rendre exploitables par les algorithmes ML. Il se compose de quatre grandes familles d’opérations : traitement des valeurs manquantes, gestion des outliers, normalisation et standardisation.
Valeurs manquantes
Les valeurs manquantes sont la règle, non l’exception, dans les données réelles. Avant de les traiter, il faut comprendre pourquoi elles sont manquantes.
Mécanismes de manque
On distingue trois mécanismes fondamentaux, qui orientent le choix du traitement :
| Mécanisme | Description | Traitement |
|---|---|---|
| MCAR (Missing Completely At Random) | Le manque est indépendant de toute variable | Imputation simple ou suppression sans biais |
| MAR (Missing At Random) | Le manque dépend d’autres variables observées | Imputation conditionnelle (KNN, modèle) |
| MNAR (Missing Not At Random) | Le manque dépend de la valeur manquante elle-même | Créer une variable indicatrice + imputer |
Un exemple classique de MNAR : dans une enquête de santé, les personnes les plus malades sont souvent celles qui ne répondent pas aux questions sur leur état de santé. Supprimer ces lignes ou imputer naïvement introduirait un biais systématique.
Stratégies d’imputation
| Situation | Stratégie recommandée |
|---|---|
| < 5% manquants, distribution symétrique | Moyenne |
| < 5% manquants, distribution asymétrique | Médiane |
| < 5% manquants, variable catégorielle | Mode |
| 5–30% manquants | KNN Imputer ou imputation par modèle |
| > 30% manquants | Envisager de supprimer la variable |
| Données temporelles | Interpolation (forward fill / backward fill) |
| MNAR | Créer une variable binaire indicatrice de manque |
L’imputation par KNN (K-Nearest Neighbors) remplace chaque valeur manquante par la moyenne pondérée des \(k\) observations les plus proches dans l’espace des autres variables. Elle est plus précise que la médiane mais plus coûteuse en calcul.
Toujours ajuster (fit) l’imputeur sur le jeu d’entraînement uniquement, puis appliquer (transform) sur le jeu de test avec les paramètres appris. Calculer la médiane ou entraîner le KNN sur l’ensemble du dataset revient à faire “fuiter” de l’information du test vers le train.
Outliers
Un outlier (valeur aberrante) est une observation qui s’écarte significativement du comportement général des données. Il peut s’agir d’une erreur de saisie, d’un problème de capteur, ou d’un phénomène réel rare (fraude, panne, événement exceptionnel).
Méthodes de détection
Z-score : une observation est déclarée outlier si \(|z| > 3\), où \(z = (x - \mu) / \sigma\). Simple et rapide, mais sensible aux distributions non gaussiennes — un outlier extrême “attire” la moyenne et gonfle l’écart-type, masquant d’autres anomalies.
Règle de Tukey (IQR) : une observation est outlier si elle est en dehors de l’intervalle \([Q1 - 1{,}5 \times IQR,\ Q3 + 1{,}5 \times IQR]\). Plus robuste que le Z-score car basée sur les quantiles, non affectée par les valeurs extrêmes elles-mêmes.
Isolation Forest : algorithme d’apprentissage non supervisé qui isole les anomalies en construisant des arbres de décision aléatoires. Les observations difficiles à isoler (nécessitant beaucoup de coupures) sont considérées comme normales ; celles faciles à isoler (peu de coupures) sont des anomalies. Particulièrement efficace en haute dimension.
Stratégies de traitement
| Traitement | Quand l’utiliser | Risque |
|---|---|---|
| Suppression | Outlier clairement erroné (erreur de saisie) | Perte d’information, biais si non-MCAR |
| Winsorisation | Distribution avec queues épaisses | Introduit un biais vers les percentiles choisis |
| Transformation log / racine carrée | Distribution très asymétrique à droite | Interprétabilité réduite des coefficients |
| Modèle robuste | Algorithme sensible aux extrêmes (régression) | Complexité accrue |
| Conserver | Outlier réel et informatif (fraude, panne) | Aucun — c’est souvent le bon choix |
La règle d’or : comprendre avant d’agir. Un outlier supprimé trop vite peut être le signal le plus important du jeu de données.
Normalisation
La normalisation (ou mise à l’échelle Min-Max) ramène toutes les valeurs d’une variable dans un intervalle fixe, généralement \([0, 1]\) :
\[x_{\text{norm}} = \frac{x - x_{\min}}{x_{\max} - x_{\min}}\]
Elle garantit que toutes les variables contribuent à égalité dans les algorithmes sensibles aux échelles, comme le KNN (qui calcule des distances) ou les réseaux de neurones (où les gradients sont sensibles aux amplitudes).
Limite principale : l’intervalle \([0, 1]\) est entièrement dicté par les valeurs minimale et maximale. Un seul outlier extrême peut comprimer toute la distribution dans une plage très étroite, rendant la normalisation inefficace.
Standardisation
La standardisation (Z-score) centre et réduit les variables pour obtenir une moyenne nulle et un écart-type unitaire :
\[x_{\text{std}} = \frac{x - \mu}{\sigma}\]
Contrairement à la normalisation, elle ne contraint pas les valeurs dans un intervalle fixe. La distribution standardisée conserve sa forme originale, simplement recentrée et réduite.
Normalisation vs. Standardisation : quand choisir ?
| Critère | Normalisation (Min-Max) | Standardisation (Z-score) |
|---|---|---|
| Plage de sortie | \([0, 1]\) fixe | Illimitée (centrée sur 0) |
| Sensibilité aux outliers | ⚠️ Très sensible | ✅ Plus robuste |
| Algorithmes adaptés | KNN, réseaux de neurones, SVM | Régression linéaire, PCA, LDA |
| Distribution requise | Aucune | Aucune (mieux avec gaussienne) |
| Interprétabilité | Intuitive (proportion) | Moins intuitive (écarts-types) |
En pratique, la standardisation est le choix par défaut dans la plupart des projets ML, sauf si l’algorithme requiert explicitement des valeurs dans \([0, 1]\) (réseaux de neurones avec activation sigmoïde, certains algorithmes à distance).
Feature Engineering
Le Feature Engineering consiste à créer, transformer et sélectionner les variables pour maximiser la capacité prédictive du modèle. C’est une discipline autant qu’une technique : elle mobilise la connaissance du domaine métier, l’intuition statistique et la créativité analytique.
“Coming up with features is difficult, time-consuming, requires expert knowledge. Applied machine learning is basically feature engineering.”
— Andrew Ng
Création de variables
De nouvelles variables peuvent révéler des patterns invisibles dans les données brutes. On distingue plusieurs familles de transformations :
Ratios et interactions : combiner deux variables par division ou multiplication crée des indicateurs composites souvent plus informatifs que les variables prises séparément. Par exemple, diviser le périmètre au carré par l’aire donne un indice de compacité géométrique.
Transformations non linéaires : appliquer \(\log(1 + x)\), \(\sqrt{x}\), ou \(x^2\) à une variable peut linéariser une relation initialement courbe avec la cible, améliorant les performances des modèles linéaires.
Variables décalées (lags) : en données temporelles, la valeur d’une variable à \(t-1\), \(t-7\) ou \(t-30\) est souvent plus prédictive que la valeur courante (prévision de ventes, séries financières).
Agrégations : calculer des statistiques (moyenne, écart-type, max) sur des fenêtres temporelles ou des groupes d’observations (par client, par région) crée des features contextuelles très puissantes.
Le feature engineering est guidé par la connaissance du domaine. Un Data Scientist qui comprend le secteur (finance, santé, industrie) saura créer des variables pertinentes bien avant qu’un algorithme automatique ne les découvre.
Encodage des variables catégorielles
Les algorithmes ML nécessitent des entrées numériques. Les variables catégorielles doivent impérativement être encodées avant modélisation.
Label Encoding
Chaque modalité est remplacée par un entier : Faible → 0, Moyen → 1, Élevé → 2. Cette approche impose un ordre entre les modalités. Elle est donc strictement réservée aux variables ordinales (où un ordre naturel existe). L’appliquer à une variable nominale (couleur, région) ferait croire à l’algorithme que “Rouge > Bleu”, ce qui est absurde.
One-Hot Encoding (OHE)
Chaque modalité devient une colonne binaire (0 ou 1). Pour une variable avec \(k\) modalités, on crée \(k-1\) colonnes (on en supprime une pour éviter la colinéarité parfaite, appelée dummy variable trap).
C’est la méthode de référence pour les variables nominales avec peu de modalités (< 10–15). Au-delà, elle génère trop de colonnes (curse of dimensionality) et des matrices creuses inefficaces.
Target Encoding
Chaque modalité est remplacée par la moyenne de la variable cible pour cette modalité. Par exemple, si les clients de la région “Nord” ont un taux de churn moyen de 0,35, toutes les observations “Nord” reçoivent la valeur 0,35.
Compact et informatif, le target encoding est particulièrement adapté aux variables à haute cardinalité (centaines ou milliers de modalités). Son principal danger est le data leakage : si on calcule la moyenne cible sur l’ensemble du dataset (train + test), on introduit de l’information du futur dans le modèle. Il doit donc être calculé uniquement sur les données d’entraînement, idéalement au sein d’une validation croisée.
| Méthode | Usage | Avantages | Inconvénients |
|---|---|---|---|
| Label Encoding | Variables ordinales | Simple, compact | Ordre artificiel sur nominales |
| One-Hot Encoding | Variables nominales (< 10–15 modalités) | Aucune hypothèse d’ordre | Explosion dimensionnelle |
| Target Encoding | Variables nominales (> 15 modalités) | Compact et informatif | Risque de leakage |
| Binary Encoding | Nombreuses modalités | Compromis OHE / Label | Moins intuitif |
| Embeddings | Très haute cardinalité (NLP, IDs utilisateurs) | Capture la sémantique | Nécessite beaucoup de données |
Sélection de variables
Trop de variables nuit à la performance : bruit accru, overfitting, temps de calcul élevé, modèle moins interprétable. La sélection de variables vise à ne conserver que les features les plus informatives et non redondantes.
On distingue trois grandes familles de méthodes.
Méthodes Filter
Les méthodes filter évaluent chaque variable indépendamment du modèle final, à l’aide d’un score statistique. Elles sont rapides et peu coûteuses.
ANOVA F-score : teste si la moyenne d’une variable numérique diffère significativement entre les classes. Un F-score élevé indique un bon pouvoir discriminant. Suppose une relation linéaire.
Information Mutuelle (MI) : mesure la dépendance statistique entre une variable et la cible, quelle que soit la nature de la relation (linéaire ou non linéaire). Plus générale que le F-score mais plus coûteuse à calculer.
Corrélation de Pearson / Spearman : simple et rapide, mais ne capte que les relations linéaires (Pearson) ou monotones (Spearman).
Méthodes Wrapper
Les méthodes wrapper évaluent des sous-ensembles de variables en entraînant réellement un modèle sur chacun. Elles sont plus précises mais coûteuses en calcul.
Recursive Feature Elimination (RFE) : entraîne un modèle sur toutes les variables, supprime la moins importante, recommence jusqu’à atteindre le nombre de variables désiré. Efficace avec les modèles qui exposent une mesure d’importance (Random Forest, SVM linéaire).
Forward / Backward Selection : ajoute (forward) ou supprime (backward) des variables une par une en évaluant l’impact sur la performance du modèle.
Méthodes Embedded
Les méthodes embedded intègrent la sélection de variables dans le processus d’entraînement lui-même.
Lasso (régularisation L1) : force certains coefficients à zéro, effectuant ainsi une sélection automatique de variables. Très efficace en régression et classification linéaire.
Importance des features (Random Forest, XGBoost) : mesure la contribution de chaque variable à la réduction d’impureté des arbres. Robuste, non linéaire, et applicable en classification comme en régression.
| Famille | Méthode | Principe | Complexité |
|---|---|---|---|
| Filter | Pearson, ANOVA, MI | Score indépendant du modèle | Faible |
| Wrapper | RFE, Forward/Backward selection | Sélection basée sur un modèle | Élevée |
| Embedded | Lasso (L1), Random Forest importance | Sélection intégrée à l’entraînement | Moyenne |
Réduction de dimension
La réduction de dimension projette les données dans un espace de plus faible dimension tout en préservant au maximum l’information utile. Elle diffère de la sélection de variables : au lieu de choisir des variables existantes, elle en crée de nouvelles (combinaisons linéaires ou non linéaires).
ACP — Analyse en Composantes Principales (PCA)
L’ACP est la méthode de réduction de dimension la plus utilisée. Elle projette les données sur les directions de variance maximale, appelées composantes principales.
Principe : les composantes principales sont des combinaisons linéaires orthogonales des variables originales, ordonnées par variance décroissante. La première composante capte le maximum de variance, la deuxième le maximum de variance résiduelle, et ainsi de suite.
Critère de choix du nombre de composantes : on retient généralement le nombre de composantes nécessaires pour expliquer 80% ou 95% de la variance totale. Le scree plot (graphique de la variance expliquée par composante) aide à visualiser ce seuil.
Limites : l’ACP est une transformation linéaire. Elle ne capte pas les structures non linéaires (clusters courbes, spirales, variétés). Elle est aussi sensible aux échelles — une standardisation préalable est indispensable.
t-SNE — Visualisation non linéaire
Le t-SNE (t-distributed Stochastic Neighbor Embedding) est un algorithme de réduction non linéaire conçu exclusivement pour la visualisation en 2D ou 3D. Il préserve la structure locale des données (les voisinages proches), révélant des clusters invisibles à l’ACP.
Attention : t-SNE ne doit jamais être utilisé comme preprocessing pour un modèle ML. Il est non déterministe (résultats différents à chaque exécution), non inversible, et ses distances inter-clusters n’ont pas d’interprétation directe.
UMAP — Réduction universelle
UMAP (Uniform Manifold Approximation and Projection) est une alternative moderne au t-SNE, plus rapide et plus stable. Contrairement au t-SNE, il préserve mieux la structure globale des données et peut être utilisé comme preprocessing (contrairement au t-SNE).
| Méthode | Type | Préserve | Usage principal | Limite |
|---|---|---|---|---|
| PCA | Linéaire | Variance globale | Preprocessing, compression | Ne capte pas le non-linéaire |
| t-SNE | Non linéaire | Structure locale | Visualisation uniquement | Lent, non déterministe, non inversible |
| UMAP | Non linéaire | Local + global | Visualisation + preprocessing | Hyperparamètres sensibles |
| Autoencoders | Non linéaire (DL) | Reconstruction | Données complexes (images, texte) | Nécessite beaucoup de données |
Pipeline de préparation — Vue d’ensemble
Un bon pipeline de préparation enchaîne les étapes dans un ordre logique et évite toute fuite d’information entre train et test. La structure recommandée est la suivante :
Données brutes
│
▼
[1] Inspection & EDA
Statistiques descriptives, visualisations, corrélations
│
▼
[2] Traitement des valeurs manquantes
Imputation par médiane / KNN / modèle selon le mécanisme
│
▼
[3] Détection et traitement des outliers
Z-score, IQR, Isolation Forest → suppression / winsorisation / transformation
│
▼
[4] Encodage des variables catégorielles
Label / OHE / Target selon la cardinalité et l'ordinalité
│
▼
[5] Feature Engineering
Création de variables, interactions, transformations
│
▼
[6] Mise à l'échelle
Standardisation (défaut) ou normalisation selon l'algorithme cible
│
▼
[7] Sélection / Réduction de dimension
Filter → Wrapper → Embedded → PCA si nécessaire
│
▼
Données prêtes pour la modélisation
- Toujours explorer avant de transformer — l’EDA guide les choix de prétraitement, pas l’inverse
- Fit sur train, transform sur test — éviter le data leakage à chaque étape du pipeline
- Encapsuler dans un Pipeline sklearn — reproductibilité garantie et déploiement simplifié
- Documenter chaque transformation — traçabilité essentielle en production et en audit
- Itérer — le feature engineering est un processus continu, revisité après chaque cycle de modélisation
Conclusion
La préparation des données n’est pas une étape mécanique : c’est un travail analytique exigeant qui mobilise compréhension du domaine, rigueur statistique et jugement.
Chaque décision — quelle valeur manquante imputer, quel outlier supprimer, quelle variable créer — a un impact direct sur la qualité du modèle final. Un pipeline de préparation bien conçu est souvent ce qui fait la différence entre un modèle médiocre et un modèle performant, bien avant de choisir l’algorithme d’apprentissage.
- Feature Engineering for Machine Learning — Alice Zheng & Amanda Casari (O’Reilly)
- Python for Data Analysis — Wes McKinney (O’Reilly)
- scikit-learn : Preprocessing — scikit-learn.org/stable/modules/preprocessing
- Kaggle : Feature Engineering course — kaggle.com/learn/feature-engineering