【问题标题】:How to apply Mean encoding in test set?如何在测试集中应用平均编码?
【发布时间】:2020-05-12 17:16:29
【问题描述】:

如果我有一个数据集,则通过在目标变量“B”的上下文中计算每个类别的平均值,将平均编码应用于训练数据集的分类特征“A” 但是测试数据呢?测试数据不包含任何目标变量。我应该使用训练数据中的计算值吗?

【问题讨论】:

  • 不太清楚你所说的平均编码是什么意思,但任何考虑目标变量的特征工程过程都是一个非常糟糕的主意(可以说现在你至少可以猜到一个原因)。

标签: python-3.x machine-learning deep-learning feature-engineering


【解决方案1】:

我应该使用训练数据中的计算值吗?

  • 是的。在训练数据中不存在测试数据的情况下,全局平均值会有所帮助。尽管还有其他方法可以处理相同的问题,例如:使用嵌套折叠进行目标编码。

嵌套折叠的工作方式如下。

对于主要 cv 中的每个训练/测试拆分,将训练拆分为 k 个辅助折叠。每个次要 k 折叠的目标编码是根据剩余 k-1 个次要折叠的目标值计算的。测试折叠的目标编码是根据训练折叠的目标值计算的。 k 可以低至 2。

关于平均编码的更多信息: https://maxhalford.github.io/blog/target-encoding/

关于不同技术的好讨论:https://www.kaggle.com/c/porto-seguro-safe-driver-prediction/discussion/44987

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多