Zacznij terazZacznij za darmo

Średnie kodowanie celu

Na początek stworzysz funkcję implementującą średnie kodowanie celu. Pamiętaj, że musisz zrealizować dwa następujące kroki:

  1. Oblicz średnią na zbiorze treningowym i zastosuj ją do zbioru testowego
  2. Podziel zbiór treningowy na K foldów. Oblicz średnią out-of-fold dla każdego foldu i zastosuj ją do tego konkretnego foldu

Każdy z tych kroków zostanie zaimplementowany w osobnej funkcji: odpowiednio test_mean_target_encoding() i train_mean_target_encoding().

Finalna funkcja mean_target_encoding() przyjmuje jako argumenty: zbiory treningowy i testowy (DataFrames), nazwę kolumny kategorycznej do zakodowania, nazwę kolumny celu oraz parametr wygładzający alfa. Zwraca dwie wartości: nową cechę dla zbiorów treningowego i testowego.

To ćwiczenie jest częścią kursu

Zwycięstwo w konkursie Kaggle w Pythonie

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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
Edytuj i uruchom kod