Kom igångKom igång gratis

Målkodning med medelvärde

Börja med att skapa en funktion som implementerar målkodning med medelvärde. Du behöver genomföra följande två steg:

  1. Beräkna medelvärdet på träningsdata och applicera det på testdata
  2. Dela upp träningsdata i K delar. Beräkna out-of-fold-medelvärdet för varje del och applicera det på den aktuella delen

Varje steg implementeras i en separat funktion: test_mean_target_encoding() respektive train_mean_target_encoding().

Den slutliga funktionen mean_target_encoding() tar följande argument: tränings- och test-DataFrames, namnet på den kategoriska kolumnen som ska kodas, namnet på målkolumnen samt en utjämningsparameter alpha. Den returnerar två värden: ett nytt särdrag för tränings- respektive test-DataFrames.

Den här övningen är en del av kursen

Vinna en Kaggle-tävling i Python

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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
Redigera och kör kod