Applez Nous: +41 22 518 70 00
Les données réelles ne sont jamais parfaites. Donald Rubin a établi une classification essentielle pour traiter scientifiquement les données manquantes :
La suppression pure et simple de lignes (dropna()) entraîne une perte substantielle d’information. On privilégiera des méthodes d’imputation adaptées :
from sklearn.impute import SimpleImputer, KNNImputer
# Imputation par la médiane pour variables numériques asymétriques
imputer_num = SimpleImputer(strategy='median')
df['salaire_estime'] = imputer_num.fit_transform(df[['salaire_estime']])
# Imputation par k-plus proches voisins (KNN) pour préserver les corrélations
knn_imputer = KNNImputer(n_neighbors=5)
features_imputed = knn_imputer.fit_transform(df[['age', 'anciennete', 'montant_achat']])
Les modèles mathématiques requièrent des tenseurs numériques. Le choix de l’encodage dépend de la nature ordinale ou nominale de la variable :
De nombreux algorithmes sont sensibles à l’échelle des grandeurs physiques. Deux approches majeures dominent :
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# Standardisation Z-score (Moyenne 0, Variance 1)
scaler = StandardScaler()
df_scaled = scaler.fit_transform(df[['age', 'revenu']])
# Normalisation Min-Max dans l'intervalle [0, 1]
minmax = MinMaxScaler()
df_norm = minmax.fit_transform(df[['age', 'revenu']])