IniziaInizia gratis

Mean target encoding

Per prima cosa creerai una funzione che implementa il mean target encoding. Ricorda che devi sviluppare i due passaggi seguenti:

  1. Calcola la media sul train, applicala al test
  2. Suddividi il train in K fold. Calcola la media out-of-fold per ciascun fold, applicala a quel fold in particolare

Ciascuno di questi passaggi sarà implementato in una funzione separata: rispettivamente test_mean_target_encoding() e train_mean_target_encoding().

La funzione finale mean_target_encoding() accetta come argomenti: i DataFrame di train e test, il nome della colonna categorica da codificare, il nome della colonna target e un parametro di smoothing alpha. Restituisce due valori: una nuova feature per i DataFrame di train e test, rispettivamente.

Questo esercizio fa parte del corso

Vincere una competizione Kaggle con Python

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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
Modifica ed esegui il codice