CommencezCommencez gratuitement

Encodage cible par la moyenne

D'abord, vous allez créer une fonction qui met en œuvre l'encodage cible par la moyenne. Rappelez-vous que vous devez réaliser les deux étapes suivantes :

  1. Calculer la moyenne sur l'ensemble d'entraînement, l'appliquer à l'ensemble de test
  2. Diviser l'entraînement en K plis. Calculer la moyenne « out-of-fold » pour chaque pli, l'appliquer à ce pli particulier

Chacune de ces étapes sera implémentée dans une fonction distincte : test_mean_target_encoding() et train_mean_target_encoding(), respectivement.

La fonction finale mean_target_encoding() prend comme arguments : les DataFrames d'entraînement et de test, le nom de la colonne catégorielle à encoder, le nom de la colonne cible et un paramètre d'adoucissement alpha. Elle retourne deux valeurs : une nouvelle caractéristique pour les DataFrames d'entraînement et de test, respectivement.

Cette activité fait partie du cours

Remporter une compétition Kaggle en Python

Voir le cours

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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
Modifier et exécuter le code