sklearn.impute.IterativeImputer

class sklearn.impute.IterativeImputer

Imputador multivariante que estima cada característica a partir de todas las restantes.

Una estrategia para la imputación de valores faltantes mediante la modelización de cada característica con valores perdidos en función de otras características de forma rotatoria.

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

Nuevo en la versión 0.21.

Nota

Este estimador es todavía experimental por ahora: las predicciones y la API podrían cambiar sin ningún ciclo de obsolescencia. Para utilizarlo, es necesario importar explícitamente enable_iterative_imputer:

>>> # explicitly require this experimental feature
>>> from sklearn.experimental import enable_iterative_imputer  # noqa
>>> # now you can import normally from sklearn.impute
>>> from sklearn.impute import IterativeImputer
Parámetros
estimatorestimador objeto, default=BayesianRidge()

El estimador que se va a utilizar en cada paso de la imputación round-robin. Si sample_posterior es True, el estimador debe soportar return_std en su método predict.

missing_valuesint, np.nan, 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.

sample_posteriorboolean, default=False

Si se muestrea de la posterior predictiva (gaussiana) del estimador ajustado para cada imputación. El estimador debe soportar return_std en su método predict si se establece como True. Establezca el valor True si utiliza IterativeImputer para múltiples imputaciones.

max_iterint, default=10

Número máximo de rondas de imputación a realizar antes de devolver las imputaciones calculadas durante la ronda final. Una ronda es una única imputación de cada característica con valores faltantes. El criterio de parada se cumple cuando max(abs(X_t - X_{t-1}))/max(abs(X[known_vals])) < tol, donde X_t es X en la iteración t. Nota que la parada temprana sólo se aplica si ``sample_posterior=False`.

tolfloat, default=1e-3

Tolerancia de la condición de parada.

n_nearest_featuresint, default=None

Número de otras características que se utilizarán para estimar los valores faltantes de cada columna de características. La proximidad entre características se mide utilizando el coeficiente de correlación absoluta entre cada par de características (tras la imputación inicial). Para garantizar la cobertura de las características a lo largo del proceso de imputación, las características vecinas no son necesariamente las más cercanas, sino que se extraen con una probabilidad proporcional a la correlación para cada característica objetivo imputada. Puede proporcionar una velocidad significativa cuando el número de características es enorme. Si None, se utilizarán todas las características.

initial_strategystr, default=”mean”

Qué estrategia utilizar para inicializar los valores faltantes. Igual que el parámetro strategy en SimpleImputer Valores válidos: {«mean», «median», «most_frequent», o «constant»}.

imputation_orderstr, default=”ascending”

El orden en que se imputarán las características. Valores posibles:

«ascending»

Desde características con menos valores faltantes hasta la mayoría.

«descending»

De las características con más valores faltantes a las menos.

«roman»

Izquierda a derecha.

«arabic»

De derecha a izquierda.

«random»

Un orden aleatorio para cada ronda.

skip_completeboolean, default=False

Si es True entonces las características con valores faltantes durante transform que no tenían ningún valor faltante durante fit serán imputadas con el método de imputación inicial solamente. Establece en True si tienes muchas características sin valores faltantes en el tiempo fit y transform para guardar el cálculo.

min_valuefloat o array-like de forma (n_features,), default=-np.inf

Mínimo valor imputado posible. Transmitido a forma ( n_features,) si es escalar. Si es array-like, espera forma (n_features,), un valor mínimo para cada característica. El valor predeterminado es -np.inf.

Distinto en la versión 0.23: Soporte agregado para array-like.

max_valuefloat o array-like de forma (n_features,), default=np.inf

Máximo valor imputado posible. Transmitido a forma ( n_features,) si es escalar. Si es array-like, espera forma (n_features,), un valor máximo para cada característica. El valor predeterminado es np.inf.

Distinto en la versión 0.23: Soporte agregado para array-like.

verboseint, default=0

Indicador de verbosidad, controla los mensajes de depuración que se emiten a medida que se evalúan las funciones. Cuanto más alto, más verboso. Puede ser 0, 1 o 2.

random_stateentero, instancia de RandomState o None, default=None

La semilla del generador de números pseudoaleatorios a utilizar. Aleatoriza la selección de las características del estimador si n_nearest_features no es None, el imputation_order si random, y el muestreo de la posterior si sample_posterior es True. Utiliza un número entero para el determinismo. Ver Glosario.

add_indicatorboolean, 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 falta aunque haya valores faltantes en el tiempo de transformación/prueba.

Atributos
initial_imputer_objeto de tipo

Imputación utilizada para inicializar los valores faltantes.

imputation_sequence_lista de tuplas

Cada tupla tiene (feat_idx, neighbor_feat_idx, estimator), donde feat_idx es la característica actual a imputar, neighbor_feat_idx es el arreglo de otras características utilizadas para imputar la característica actual, y estimator es el estimador entrenado utilizado para la imputación. La longitud es self.n_features_with_missing_ * self.n_iter_.

n_iter_int

Número de rondas de iteración que se produjeron. Será menor que self.max_iter si se alcanzó el criterio de parada anticipada.

n_features_with_missing_int

Número de características con valores faltantes.

indicator_MissingIndicator

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

random_state_RandomState instance

Instancia de RandomState que se genera a partir de una semilla, el generador de números aleatorios o por np.random.

Ver también

SimpleImputer

Imputación univariante de valores faltantes.

Notas

Para apoyar la imputación en modo inductivo, almacenamos el estimador de cada característica durante la fase de fit, y predecimos sin reajustar (en orden) durante la fase de transform.

Las características que contienen todos los valores faltantes en fit se descartan al transform.

Referencias

1

Stef van Buuren, Karin Groothuis-Oudshoorn (2011). «mice: Multivariate Imputation by Chained Equations in R». Journal of Statistical Software 45: 1-67.

2

S. F. Buck, (1960). «A Method of Estimation of Missing Values in Multivariate Data Suitable for use with an Electronic Computer». Journal of the Royal Statistical Society 22(2): 302-306.

Ejemplos

>>> import numpy as np
>>> from sklearn.experimental import enable_iterative_imputer
>>> from sklearn.impute import IterativeImputer
>>> imp_mean = IterativeImputer(random_state=0)
>>> imp_mean.fit([[7, 2, 3], [4, np.nan, 6], [10, 5, 9]])
IterativeImputer(random_state=0)
>>> X = [[np.nan, 2, 3], [4, np.nan, 6], [10, np.nan, 9]]
>>> imp_mean.transform(X)
array([[ 6.9584...,  2.       ,  3.        ],
       [ 4.       ,  2.6000...,  6.        ],
       [10.       ,  4.9999...,  9.        ]])

Métodos

fit

Ajusta la imputación en X y se devuelve a sí misma.

fit_transform

Ajusta la imputación en X y devuelve el X transformado.

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 la imputación en X y se devuelve a sí misma.

Parámetros
Xarray-like, 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.

yignorado
Devuelve
selfobject

Devuelve a sí mismo.

fit_transform()

Ajusta la imputación en X y devuelve el X transformado.

Parámetros
Xarray-like, 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.

yignorado.
Devuelve
Xtarray-like, forma (n_samples, n_features)

Los datos de entrada imputados.

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.

Nota que esto es estocástico, y que si random_state no es fijo, las llamadas repetidas, o la entrada permutada, darán resultados diferentes.

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

Los datos de entrada a completar.

Devuelve
Xtarray-like, forma (n_samples, n_features)

Los datos de entrada imputados.

Ejemplos usando sklearn.impute.IterativeImputer