ComeçarComece de graça

Imputação KNN de valores categóricos

Depois que todas as colunas categóricas do DataFrame forem convertidas para valores ordinais, o DataFrame estará pronto para a imputação. Fazer a imputação usando modelos estatísticos como K-Nearest Neighbors (KNN) fornece resultados melhores.

Neste exercício, você vai:

  1. Usar a função KNN() do fancyimpute para imputar os valores ausentes no DataFrame users codificado ordinalmente.
  2. Converter os valores ordinais de volta para suas respectivas categorias usando o método .inverse_transform() do codificador ordinal.

Lembre-se: ordinal_enc_dict armazena o OrdinalEncoder() do sklearn para cada coluna. O DataFrame users armazena os valores codificados (valores ordinais) de cada coluna.

A função KNN(), o dicionário de OrdinalEncoder()s ordinal_enc_dict e o DataFrame users já foram carregados para você.

Este exercício faz parte do curso

Lidando com Dados Ausentes em Python

Ver curso

Instruções do exercício

  • Impute o DataFrame users usando o método fit_transform() do KNN_imputer. Esses valores transformados são arredondados para obter inteiros.
  • Faça um loop pelas colunas em users.
  • Selecione o OrdinalEncoder() da coluna a partir de ordinal_enc_dict e execute .inverse_transform() no array remodelado reshaped.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código