ÎncepețiÎncepe gratuit

Encodarea prin media țintei

Mai întâi, vei crea o funcție care implementează encodarea prin media țintei. Reține că trebuie să dezvolți următorii doi pași:

  1. Calculează media pe setul de antrenament și aplică-o pe setul de testare
  2. Împarte setul de antrenament în K fold-uri. Calculează media out-of-fold pentru fiecare fold și aplică-o acelui fold

Fiecare dintre acești pași va fi implementat într-o funcție separată: test_mean_target_encoding() și, respectiv, train_mean_target_encoding().

Funcția finală mean_target_encoding() primește ca argumente: DataFrame-urile de antrenament și de testare, numele coloanei categoriale de encodat, numele coloanei țintă și un parametru de netezire alpha. Returnează două valori: câte o caracteristică nouă pentru DataFrame-ul de antrenament și, respectiv, pentru cel de testare.

Acest exercițiu face parte din cursul

Câștigarea unei competiții Kaggle în Python

Vezi cursul

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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
Editează și rulează codul