ПочатиПочніть безкоштовно

Імпутація категоріальних значень за допомогою KNN

Після того як усі категоріальні стовпці в датафреймі буде перетворено на порядкові значення, датафрейм готовий до імпутації. Імпутація за допомогою статистичних моделей, таких як K-Nearest Neighbors (KNN), дає кращі результати.

У цій вправі ви:

  1. Використаєте функцію KNN() з fancyimpute, щоб заповнити пропуски в порядково закодованому датафреймі users.
  2. Перетворите порядкові значення назад у відповідні категорії за допомогою методу .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] = ___
Редагувати та запускати код