EmpezarEmpieza gratis

Imputación KNN de valores categóricos

Una vez que todas las columnas categóricas del DataFrame se han convertido a valores ordinales, el DataFrame está listo para imputarse. La imputación con modelos estadísticos como K-Nearest Neighbors (KNN) ofrece mejores resultados.

En este ejercicio, vas a:

  1. Usar la función KNN() de fancyimpute para imputar los valores faltantes en el DataFrame users codificado ordinalmente.
  2. Convertir los valores ordinales de vuelta a sus categorías correspondientes usando el método .inverse_transform() del codificador ordinal.

Recuerda que ordinal_enc_dict almacena el OrdinalEncoder() de sklearn para cada columna. El DataFrame users almacena los valores codificados (valores ordinales) de cada columna.

La función KNN(), el diccionario de OrdinalEncoder()s ordinal_enc_dict y el DataFrame users ya se han cargado por ti.

Este ejercicio forma parte del curso

Cómo tratar datos faltantes en Python

Ver curso

Instrucciones del ejercicio

  • Imputa el DataFrame users usando el método fit_transform() de KNN_imputer. Redondea estos valores transformados para obtener enteros.
  • Itera sobre las columnas de users.
  • Selecciona el OrdinalEncoder() de la columna desde ordinal_enc_dict y realiza .inverse_transform() sobre el array reshaped (ya reformateado).

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Create KNN imputer
KNN_imputer = KNN()

# Impute 'users' DataFrame. It is rounded to get integer values
users_KNN_imputed.iloc[:, :] = np.round(___)

# Loop over the column names in 'users'
for col_name in ___:
    
    # Reshape the column data
    reshaped = users_KNN_imputed[col_name].values.reshape(-1, 1)
    
    # Select the column's Encoder and perform inverse transform on 'reshaped'
    users_KNN_imputed[col_name] = ___
Editar y ejecutar código