Začněte nyníZačněte zdarma

Mean target encoding

Nejdřív vytvoříš funkci, která implementuje mean target encoding. Budeš potřebovat dva následující kroky:

  1. Vypočítej průměr na trénovacích datech a aplikuj ho na testovací data
  2. Rozděl trénovací data na K foldů. Pro každý fold vypočítej out-of-fold průměr a aplikuj ho na daný fold

Každý z těchto kroků bude implementován v samostatné funkci: test_mean_target_encoding() a train_mean_target_encoding().

Finální funkce mean_target_encoding() přijímá jako argumenty: trénovací a testovací DataFramy, název kategorického sloupce, který má být zakódován, název cílového sloupce a vyhlazovací parametr alpha. Vrací dvě hodnoty: nový příznak pro trénovací a testovací DataFrame.

Toto cvičení je součástí kurzu

Jak vyhrát soutěž na Kaggle v Pythonu

Zobrazit kurz

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
Upravit a spustit kód