ComenzarEmpieza gratis

Codificación de la media del objetivo (mean target encoding)

Para empezar, vas a crear una función que implemente la codificación de la media del objetivo. Recuerda que tienes que desarrollar estos dos pasos:

  1. Calcular la media en el conjunto de train y aplicarla al de test
  2. Dividir el train en K folds. Calcular la media out-of-fold para cada fold y aplicarla a ese fold en concreto

Cada uno de estos pasos se implementará en una función aparte: test_mean_target_encoding() y train_mean_target_encoding(), respectivamente.

La función final mean_target_encoding() recibe como argumentos: los DataFrames de train y test, el nombre de la columna categórica a codificar, el nombre de la columna objetivo y un parámetro de suavizado alpha. Devuelve dos valores: una nueva característica para los DataFrames de train y test, respectivamente.

Este ejercicio forma parte del curso

Cómo ganar una competición de Kaggle con Python

Ver curso

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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
Editar y ejecutar código