如何使用目标编码:在测试集上扩展均值

How to use target encoding : expanding mean on the test set

expanding mean 是一种在执行 target encoding 时防止过度拟合的方法。但我不明白的是如何使用这种技术在训练集上应用拟合并在测试集上应用变换来编码我的特征,因为这种编码技术动态编码特征;给定特征级别的编码值在输入后不断变化,因为它取决于累积和。

cumulative_sum = training.groupby(column)["target"].cumsum() - training["target"]
cumulative_count = training.groupby(column).cumcount()
train_new[column + "_mean_target"] = cumulative_sum/cumulative_count

你不应该简单地将为不同类别计算的目标变量的平均值映射到测试集中的相应类别吗?仅训练部分需要累积均值以进行正则化。

我也有兴趣知道如何计算测试集的平均编码。 现在,我正在重新计算训练集的平均值并将值分配给测试集。

test.merge(training.groupby(column).mean().reset_index(), on=column)