据我所知,人们说,在将数据分割成训练/测试数据集之后,对数据进行预处理更正确。我的问题是
1.这是否意味着我们检测到数据的缺陷并在分割后对其进行预处理?如果是/否,为什么?
2.在分割数据之前先检测数据的缺陷,然后在分割后对缺陷进行预处理,这样行吗?如果是/不是,为什么?
发布于 2020-02-27 00:34:42
让我们想象一下,我们想对短消息(如tweet)进行分类。在检查数据时,我们发现各种笑脸::-),:|,:-/.在预处理阶段,我们将数据中的所有笑脸替换为一个特殊的标记,如<smiley> (或更具体的标记)。
<smiley>。在第一种情况下,存在数据泄漏:我们修复了测试集中的一些问题,尽管这在实际的新数据中是不可能的(这里是训练集中看不到的笑脸变体)。在第二种情况下,测试集是“不完美”的,也就是说,它就像它是由“新鲜”的未见数据构成的,因此评估将更加现实。
这个例子说明了为什么首先分离数据、设计训练数据的预处理步骤、然后对测试数据应用完全相同的预处理步骤总是更安全。
实际上,在某些情况下,可以更方便地对整个数据应用一些通用的预处理。决策取决于任务和数据:有时数据泄漏的风险太小,可以忽略。但是,必须记住,即使是预处理的设计也可能是数据泄漏的来源。
https://datascience.stackexchange.com/questions/68743
复制相似问题