数据集拆分之前或之后的特征化

机器算法验证 数据集 特征工程
2022-04-13 14:28:57

当我意识到作者决定在特征化之前拆分训练/测试数据集时,我正在阅读这篇关于再现性工具的文章。

这对我来说没有意义,因为你为什么不能通勤这些操作?但就在几天后,我在 deepchem 回购问题中发现了这条评论:

在数据增强的情况下,在某些用例中,在将数据拆分为训练/测试/验证之后对其进行特征化可能是有意义的。

我不知道那会是怎样的一件事,但显然它是。什么样的数据增强——或任何其他数据转换——可以证明推迟数据集拆分是合理的?

1个回答

该评论是正确的:我们只需要从我们的训练数据中进行“特征提取”

让我们考虑最常见的数据转换过程之一,centering我们为我们的特征得到一个“期望值”,然后我们从的值中减去它,没什么神奇的。一个核心问题是:这个“预期值”反映了什么?是否反映了我们对μ^xjxjxjxj使用整个样本还是只使用训练样本?如果我们使用整个样本,我们就会有所谓的数据泄漏,“我们欺骗”使用预测期间应该可用的信息。举一个 NLP 的例子,如果我们的语料库中存在一些非常不寻常的单词或 n-gram,并且所有实例都恰好落在测试集中,那么将我们的文本文档集合转换为矩阵的过程显然是错误的令牌与那个不寻常的 n-gram 一起计数。它会给我们一个关于我们程序的一般性能的虚假安全场景。因此,在进行严肃的特征提取/工程时,我们只需要使用训练数据而不是整个数据集。