← retour aux snippets

sklearn KNNImputer: imputer par plus proches voisins

imputation de valeurs manquantes via KNNImputer

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.