sklearn KNNImputer: imputer par plus proches voisins
objectif
Expliquer et montrer comment imputation de valeurs manquantes via KNNImputer.
code minimal
import numpy as np
from sklearn.impute import KNNImputer
X = np.array([[1.0, np.nan, 2.0],
[2.0, 3.0, np.nan],
[np.nan, 2.0, 2.0],
[4.0, 4.0, 4.0]])
imp = KNNImputer(n_neighbors=2, weights="distance")
X_imp = imp.fit_transform(X)
X_imp
utilisation
# intégrer dans un pipeline avec StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
pipe = make_pipeline(KNNImputer(), StandardScaler())
# X_proc = pipe.fit_transform(X)
variante(s) utile(s)
# comparer avec SimpleImputer
from sklearn.impute import SimpleImputer
SimpleImputer(strategy="median").fit_transform(X)
notes
- KNNImputer peut être coûteux pour grands jeux (distance).
- Standardiser les features avant KNN peut améliorer les résultats.