LoslegenKostenlos loslegen

Mean Target Encoding

Zuerst schreibst du eine Funktion, die Mean Target Encoding implementiert. Denk daran, dass du zwei Schritte umsetzen musst:

  1. Den Mittelwert auf dem Train-Set berechnen und auf das Test-Set anwenden
  2. Train in K Folds aufteilen. Für jeden Fold den Out-of-Fold-Mittelwert berechnen und auf genau diesen Fold anwenden

Jeder dieser Schritte wird in einer separaten Funktion implementiert: test_mean_target_encoding() bzw. train_mean_target_encoding().

Die abschließende Funktion mean_target_encoding() nimmt als Argumente: die Train- und Test-DataFrames, den Namen der zu kodierenden kategorialen Spalte, den Namen der Zielvariable sowie einen Glättungsparameter alpha. Sie gibt zwei Werte zurück: ein neues Merkmal für die Train- bzw. Test-DataFrames.

Diese Übung ist Teil des Kurses

Eine Kaggle-Competition in Python gewinnen

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen