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:
- Beräkna medelvärdet på träningsdata och applicera det på testdata
- 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
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