Bắt đầu ngayBắt đầu miễn phí

Mã hóa mục tiêu theo giá trị trung bình (mean target encoding)

Trước hết, bạn sẽ tạo một hàm để hiện thực mean target encoding. Hãy nhớ bạn cần triển khai hai bước sau:

  1. Tính trung bình trên dữ liệu train, rồi áp dụng cho dữ liệu test
  2. Chia train thành K folds. Tính giá trị trung bình out-of-fold cho từng fold, rồi áp dụng cho chính fold đó

Mỗi bước sẽ được triển khai trong một hàm riêng: lần lượt là test_mean_target_encoding()train_mean_target_encoding().

Hàm cuối cùng mean_target_encoding() nhận các đối số: DataFrame train và test, tên cột phân loại cần mã hóa, tên cột mục tiêu và tham số làm mượt alpha. Hàm trả về hai giá trị: một đặc trưng mới cho DataFrame train và một cho DataFrame test, tương ứng.

Bài tập này là một phần của khóa học

Chinh phục cuộc thi Kaggle bằng Python

Xem khóa học

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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
Chỉnh sửa và Chạy Mã