sklearn.impute.KNNImputer

class sklearn.impute.KNNImputer

Imputación para completar los valores faltantes mediante vecinos más cercanos (k-Nearest Neighbors).

Los valores faltantes en cada muestra se imputan utilizando el valor medio de los n_neighbors vecinos más cercanos encontrados en el conjunto de entrenamiento. Dos muestras son cercanas si las características que faltan están cerca.

Más información en el Manual de usuario.

Nuevo en la versión 0.22.

Parámetros
missing_valuesint, float, str, np.nan o None, default=np.nan

El marcador de posición para los valores faltantes. Todas las ocurrencias de missing_values serán imputadas. Para los dataframes de pandas con dtypes enteros anulables con valores faltantes, missing_values debe establecerse en np.nan, ya que pd.NA se convertirá en np.nan.

n_neighborsint, default=5

Número de muestras vecinas a utilizar para la imputación.

weights{“uniform”, “distance”} o invocable, default=”uniform”

Función de peso utilizada en la predicción. Valores posibles:

  • “uniform” : ponderaciones uniformes. Todos los puntos de cada vecindario se ponderan por igual.

  • “distance” : ponderar los puntos por la inversa de su distancia. en este caso, los vecinos más cercanos de un punto de consulta tendrán una mayor influencia que los vecinos más alejados.

  • callable : una función definida por el usuario que acepta un arreglo de distancias, y devuelve un arreglo de la misma forma que contiene los pesos.

metric{“nan_euclidean”} or callable, default=”nan_euclidean”

Métrica de distancia para la búsqueda de vecinos. Valores posibles:

  • “nan_euclidean”

  • callable : una función definida por el usuario que se ajusta a la definición de _pairwise_callable(X, Y, metric, **kwds). La función acepta dos arreglos, X e Y, y una palabra clave missing_values en kwds y devuelve un valor de distancia escalar.

copybool, default=False

Si es True, se creará una copia de X. Si es False, la imputación se hará en el lugar siempre que sea posible.

add_indicatorbool, default=False

Si es True, una transformación MissingIndicator se apilará en la salida de la transformación del imputador. Esto permite que un estimador predictivo tenga en cuenta los valores faltantes a pesar de la imputación. Si una característica no tiene valores faltantes en el tiempo de ajuste/entrenamiento, la característica no aparecerá en el indicador de ausencia aunque haya valores faltantes en el tiempo de transformación/prueba.

Atributos
indicator_MissingIndicator

Indicador utilizado para añadir indicadores binarios para los valores faltantes. None si add_indicator es False.

Referencias

  • Olga Troyanskaya, Michael Cantor, Gavin Sherlock, Pat Brown, Trevor Hastie, Robert Tibshirani, David Botstein and Russ B. Altman, Missing value estimation methods for DNA microarrays, BIOINFORMATICS Vol. 17 no. 6, 2001 Pages 520-525.

Ejemplos

>>> import numpy as np
>>> from sklearn.impute import KNNImputer
>>> X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
>>> imputer = KNNImputer(n_neighbors=2)
>>> imputer.fit_transform(X)
array([[1. , 2. , 4. ],
       [3. , 4. , 3. ],
       [5.5, 6. , 5. ],
       [8. , 8. , 7. ]])

Métodos

fit

Ajusta el imputer en X.

fit_transform

Se ajustan los datos y luego se transforman.

get_params

Obtiene los parámetros para este estimador.

set_params

Establece los parámetros de este estimador.

transform

Imputa todos los valores faltantes en X.

fit()

Ajusta el imputer en X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos de entrada, donde n_samples es el número de muestras y n_features es el número de características.

Devuelve
selfobject
fit_transform()

Se ajustan los datos y luego se transforman.

Ajusta el transformador a X y y con los parámetros opcionales fit_params y devuelve una versión transformada de X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de entrada.

yarray-like de forma (n_samples,) o (n_samples, n_outputs), default=None

Valores objetivo (None para transformaciones no supervisadas).

**fit_paramsdict

Parámetros de ajuste adicionales.

Devuelve
X_newarreglo ndarray de forma (n_samples, n_features_new)

Arreglo transformado.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=False

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

transform()

Imputa todos los valores faltantes en X.

Parámetros
Xarray-like de forma (n_samples, n_features)

Los datos de entrada a completar.

Devuelve
Xarray-like de forma (n_samples, n_output_features)

El conjunto de datos imputados. n_output_features es el número de características que no siempre falta durante fit.

Ejemplos usando sklearn.impute.KNNImputer