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.
Envie d'aller plus loin ?
Découvrez notre formation de 3 jours pour maîtriser le Machine Learning et le Deep Learning avec Python.
Voir le programme → Retour au blog