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

Середнє кодування за цільовою змінною (mean target encoding)

Спершу ви створите функцію, що реалізує середнє кодування за цільовою змінною. Пам'ятайте, що потрібно виконати два кроки:

  1. Обчислити середнє на тренувальних даних і застосувати до тестових
  2. Розбити тренувальні дані на K фолдів. Для кожного фолду обчислити out-of-fold середнє та застосувати до цього конкретного фолду

Кожен із цих кроків буде реалізовано в окремій функції: відповідно test_mean_target_encoding() і train_mean_target_encoding().

Підсумкова функція mean_target_encoding() приймає як аргументи: тренувальний і тестовий DataFrame, назву категоріального стовпця для кодування, назву цільового стовпця та параметр згладжування alpha. Вона повертає два значення: нову ознаку для тренувального і тестового DataFrame відповідно.

Ця вправа є частиною курсу

Як перемагати в змаганнях Kaggle за допомогою Python

Переглянути курс

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

def test_mean_target_encoding(train, test, target, categorical, alpha=5):
    # Calculate global mean on the train data
    global_mean = train[target].mean()
    
    # Group by the categorical feature and calculate its properties
    train_groups = train.groupby(categorical)
    category_sum = train_groups[target].sum()
    category_size = train_groups.size()
    
    # Calculate smoothed mean target statistics
    train_statistics = (category_sum + global_mean * alpha) / (category_size + ____)
    
    # Apply statistics to the test data and fill new categories
    test_feature = test[categorical].map(train_statistics).fillna(____)
    return test_feature.values
Редагувати та запускати код