我应该删除与某些训练样本相同的测试样本吗?

时间:2013-12-05 03:15:46

标签: machine-learning

我和我的顾问就这个问题进行了一些辩论,我想就此发表意见。

我有一个相当大的数据集,我用它来构建分类器。我有一个独立的,较小的测试数据集,它是独立于训练集获得的(事实上,你可以说任一组中的每个样本都是独立获得的)。每个样本都有一个类标签,以及收集日期和位置等元数据。

测试集中没有样本与训练集中的任何样本具有相同的元数据(因为每个样本是在不同的位置或时间收集的)。但是,特征向量本身可能与训练集中的某些样本相同。例如,可能有两种病毒株分别在非洲和加拿大取样,但它们都具有相同的蛋白质序列(特征载体)。

我的顾问认为我应该从测试装置中删除这些样品。他的理由是,这些就像测试中的“免费赠品”一样,可能会人为地提高报告的准确性。

但是,我不同意并且认为它们应该被包括在内,因为它实际上可能发生在现实世界中分类器看到它之前已经看过的样本。删除这些样本会让我们更加远离现实。

您怎么看?

4 个答案:

答案 0 :(得分:3)

如果你在谈论几百万个样本中的几个重复或15个样本中的10个重复,那将是很好的。

总的来说,我找不到你合情合理的东西。我认为你的顾问有一个非常好的观点。您的评估需要尽可能接近使用您控制之外的分类器 - 您不能只假设您将在已经看过的数据点上进行评估。即使每个数据点都是独立的,您也将对前所未见的数据进行评估。

我的经验是计算机视觉,用一个主题的相同图片进行训练和测试将是非常值得怀疑的。事实上,我不习惯使用相同视频的帧(甚至不是相同的帧)进行训练和测试。

修改

有两个问题:

  1. 分发允许这些重复自然发生。一世 相信你,你知道你的实验,你知道你的数据,你是 专家。

  2. 通过这样做,你得到了提升的问题 提升可能是不公平的。解决顾问问题的一种可能方法 关注的是评估你获得的杠杆有多重要 从重复的数据点。生成20个测试用例10 你训练1000并在33测试确保没有 重复在33,和另外10个你训练的情况 1000并在33上进行测试,允许重复发生 自然。报告两者的均值和标准差 实验

答案 1 :(得分:1)

尽管培训和测试数据集代表了基础数据分布,但我认为重复进行是完全有效的。测试数据应该代表您希望方法执行的数据类型。如果你真的可以得到精确的重复,那很好。但是,我会质疑您的域名是什么,可以多次生成完全相同的样本。你的数据合成吗?您是否使用了一个微小的功能集,每个功能都有很少的可能值,以便输入空间中的不同点映射到功能空间中的同一个点?

您能够多次遇到同一个实例的事实对我来说是可疑的。此外,如果您有1,033个实例,则应使用远超过33个实例进行测试。测试精度的差异将是巨大的。请参阅答案here

答案 2 :(得分:0)

这取决于......你的顾问建议采用这种做法。您通常会对未用于培训的样本测试分类器。如果与训练集匹配的测试集的样本非常少,则由于相同向量的再现,您的结果将不会具有统计差异。如果你想要正式并且仍然保持逻辑,你必须证明相同向量的再现在测试过程中没有统计显着性。如果你在理论上证明了这一点,我会接受你的逻辑。请参阅this ebook一般统计信息,this chapter作为统计显着性和零假设检验的起点。

希望我帮忙!

答案 3 :(得分:0)

有几个重复或非常相似的样本似乎有点类似于您尝试归类为不均匀的人口分布。也就是说,某些特征组合比其他特征组合更常见,并且它们在数据中的高发生率使它们更具权重。要么,您的样本都不具代表性。

注意:当然,即使人口分布均匀,也总是有可能绘制相似的样本(根据分布情况,甚至可能相同)。

你可能会提出一些论点,即相同的观察是一个特例,但它们真的是吗? 如果您的样本具有代表性,某些功能组合比其他功能组合更常见(根据您的问题域可能甚至相同),这似乎是完全合理的。