Імпутація категоріальних значень за допомогою KNN
Після того як усі категоріальні стовпці в датафреймі буде перетворено на порядкові значення, датафрейм готовий до імпутації. Імпутація за допомогою статистичних моделей, таких як K-Nearest Neighbors (KNN), дає кращі результати.
У цій вправі ви:
- Використаєте функцію
KNN()зfancyimpute, щоб заповнити пропуски в порядково закодованому датафрейміusers. - Перетворите порядкові значення назад у відповідні категорії за допомогою методу
.inverse_transform()порядкового енкодера.
Пам'ятайте, ordinal_enc_dict зберігає OrdinalEncoder() зі sklearn для кожного стовпця.
Датасет users зберігає закодовані (порядкові) значення для кожного стовпця.
Функція KNN(), словник OrdinalEncoder() ordinal_enc_dict та датафрейм users уже завантажені для вас.
Ця вправа є частиною курсу
Робота з пропущеними даними в Python
Інструкції до вправи
- Виконайте імпутацію датафрейму
usersза допомогою методуfit_transform()об'єктаKNN_imputer. Отримані значення округлюються до цілих. - Ітеруйтеся стовпцями
users. - Виберіть
OrdinalEncoder()для стовпця зordinal_enc_dictі виконайте.inverse_transform()над переформатованим масивомreshaped.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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] = ___