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:
- Usar a função
KNN()dofancyimputepara imputar os valores ausentes no DataFrameuserscodificado ordinalmente. - 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
Instruções do exercício
- Impute o DataFrame
usersusando o métodofit_transform()doKNN_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 deordinal_enc_dicte execute.inverse_transform()no array remodeladoreshaped.
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] = ___