Mean target encoding
먼저, mean target encoding을 구현하는 함수를 만들어 보겠습니다. 다음 두 단계를 개발해야 한다는 점을 기억하세요:
- 학습셋에서 평균을 계산하고, 이를 테스트셋에 적용하기
- 학습셋을 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