Aan de slagGa gratis aan de slag

Gemiddelde target encoding

Allereerst maak je een functie die mean target encoding implementeert. Denk eraan dat je de volgende twee stappen nodig hebt:

  1. Bereken het gemiddelde op de trainset en pas dit toe op de testset
  2. Splits de trainset in K folds. Bereken per fold het out-of-fold-gemiddelde en pas dit toe op die specifieke fold

Elke stap maak je in een aparte functie: respectievelijk test_mean_target_encoding() en train_mean_target_encoding().

De uiteindelijke functie mean_target_encoding() krijgt als argumenten: de train- en test-DataFrames, de naam van de categorische kolom die je encodeert, de naam van de targetkolom en een smoothing-parameter alpha. De functie geeft twee waarden terug: een nieuw kenmerk voor respectievelijk de train- en test-DataFrames.

Deze oefening maakt deel uit van de cursus

Een Kaggle-competitie winnen met Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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
Code bewerken en uitvoeren