文本增强应该在拆分数据集之前还是之后进行?

数据挖掘 机器学习 Python 喀拉斯 张量流
2022-02-20 18:07:03

我有一个包含约 20000 个样本的文本数据集(这还不够)。我使用文本增强来“发明”更多样本,所以基本上我将每个样本乘以 10 - 最终得到约 200000 个样本(10 个样本中的每一个都是不同类型的增强方法)。

在将其拆分为训练和测试数据集之前,我对整个数据集进行了此操作。我应该只为训练数据集做吗?

更新:

根据给出的答案,我有一个后续问题:

操作顺序应该是什么?我现在明白应该只在训练数据集上进行增强,但是标记化和词干化呢?

以下是正确的顺序吗?

  1. 将数据集拆分为 2 个数据集:训练和测试
  2. 仅在训练数据集上执行增强
  3. 对两个数据集进行词干化和标记化
  4. 文本编码
  5. 创建模型
  6. 在模型上拟合数据
  7. 评估

我想我的问题是关于第 3 步。是否按上述顺序正确放置?

1个回答

应该首先进行拆分至少有两个原因:

  • 至少在理论上,目标任务的数据存在真实分布。任何模型都应始终根据数据的真实分布进行评估,因为目标是在此分布上进行预测。由于数据增强修改了这种分布,就好像模型是在不同的任务而不是目标任务上评估的。
  • 增强技术会创建人工实例,这些实例通常更易于模型分类,因为它们遵循用于生成它们的模式。如果在测试集中使用这些更简单的实例,性能很可能被高估。这是一个数据泄露的案例:来自训练集的一些信息在测试集中“泄露”。

最后一句话:我认为在文本数据上应该谨慎使用增强技术。一般来说,文本很难模拟。