НачатьНачать бесплатно

Целевое среднее кодирование

Для начала вы создадите функцию, которая реализует целевое среднее кодирование. Необходимо выполнить два шага:

  1. Вычислить среднее на обучающей выборке и применить его к тестовой.
  2. Разбить обучающую выборку на K фолдов. Вычислить среднее вне фолда для каждого фолда и применить его к этому фолду.

Каждый из этих шагов будет реализован в отдельной функции: 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
Редактировать и запускать код