시작하기무료로 시작하기

Mean target encoding

먼저, mean target encoding을 구현하는 함수를 만들어 보겠습니다. 다음 두 단계를 개발해야 한다는 점을 기억하세요:

  1. 학습셋에서 평균을 계산하고, 이를 테스트셋에 적용하기
  2. 학습셋을 K개의 폴드로 나눕니다. 각 폴드에 대해 out-of-fold 평균을 계산하고, 해당 폴드에 적용하기

각 단계는 각각 별도의 함수 test_mean_target_encoding()train_mean_target_encoding()에서 구현됩니다.

최종 함수 mean_target_encoding()은 인자로 학습 및 테스트 DataFrame, 인코딩할 범주형 열 이름, 타깃 열 이름, 그리고 스무딩 파라미터 alpha를 받습니다. 이 함수는 학습 및 테스트 DataFrame용 새 특성 두 개를 반환합니다.

이 연습은 강의의 일부입니다

Python으로 Kaggle 대회 공략하기

강의 보기

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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
코드 편집 및 실행