Les données : le carburant du Machine Learning

On dit souvent que “garbage in, garbage out”. La qualité de vos données détermine directement la qualité de vos modèles. La préparation des données est l’étape la plus importante (et la plus chronophage) de tout projet ML.

Étape 1 : Analyse exploratoire (EDA)

Avant toute chose, comprenez vos données :

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_csv("dataset.csv")

# Vue d'ensemble
print(df.shape)
print(df.info())
print(df.describe())

# Valeurs manquantes
print(df.isnull().sum())

# Distribution des variables
df.hist(figsize=(12, 8))
plt.tight_layout()
plt.show()

Étape 2 : Nettoyage des données

Gérer les valeurs manquantes

  • Suppression : si peu de données manquantes (< 5%)
  • Imputation par la moyenne/médiane : pour les variables numériques
  • Imputation par le mode : pour les variables catégorielles
  • Imputation avancée : KNN Imputer, imputation itérative
from sklearn.impute import SimpleImputer

# Imputation par la médiane
imputer = SimpleImputer(strategy="median")
df[numerical_cols] = imputer.fit_transform(df[numerical_cols])

Détecter les outliers

# Méthode IQR
Q1 = df["feature"].quantile(0.25)
Q3 = df["feature"].quantile(0.75)
IQR = Q3 - Q1
outliers = df[(df["feature"] < Q1 - 1.5*IQR) | (df["feature"] > Q3 + 1.5*IQR)]

Étape 3 : Feature Engineering

Créer de nouvelles features pertinentes peut considérablement améliorer vos modèles :

  • Encodage : transformer les variables catégorielles en nombres
  • Normalisation : mettre les features à la même échelle
  • Création de features : ratios, interactions, agrégations temporelles
  • Sélection de features : garder les plus pertinentes

Étape 4 : Séparation train/test

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

Règle d’or : ne JAMAIS utiliser les données de test pour entraîner ou ajuster votre modèle. Le test set doit rester invisible jusqu’à l’évaluation finale.

Conclusion

La préparation des données n’est pas la partie la plus glamour du ML, mais c’est celle qui a le plus d’impact. Un bon pré-traitement peut transformer un modèle médiocre en un excellent modèle. Nous consacrons une partie importante du jour 1 de notre formation à ces techniques essentielles.