开始使用免费开始使用

目标均值编码(Mean Target Encoding)

首先,您将创建一个实现目标均值编码的函数。需要完成以下两个步骤:

  1. 在训练集上计算均值,并将其应用到测试集。
  2. 将训练集划分为 K 折。为每一折计算折外(out-of-fold)均值,并应用到该折。

上述每个步骤将分别实现在函数:test_mean_target_encoding()train_mean_target_encoding() 中。

最终的函数 mean_target_encoding() 接收以下参数:训练集和测试集 DataFrame、需要编码的分类列名、目标列名以及平滑参数 alpha。它返回两个值:训练集和测试集对应的新特征。

本练习是课程的一部分

用 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
编辑并运行代码