我完全同意@Erwan 的观点,即这是一个非常糟糕的主意。
基于有限数据样本的所有性能估计都会因从基础人口中抽样而产生一定程度的变化,但这只是“噪音”。
在测试训练分割方面,如果一个测试训练分割给你的结果比另一个更好,这可能意味着偶然地大多数“容易”分类的例子碰巧最终出现在测试集中,而大部分难以分类的例子最终进入训练集。因此,它将对模型的真实性能给出一个乐观的估计。如果您收集一个新的测试集(或观察操作使用中的分类器),随着时间的推移,容易和难以分类的模式的比例将与“最佳”分区中的比例不同,并给出较低(偏差较小)的准确度。
这是一个简单的思想实验,以证明这将产生一个带有乐观偏差的性能估计。考虑一个完全随机的学习任务,我们试图预测掷硬币的结果(目标变量),我们有(比如说)十个随机输入属性,这些属性也是通过掷硬币产生的。现在在这种情况下,您在训练分区上构建的分类器可能无法预测测试分区中的目标,因为它们是完全随机的,并且与任何输入都没有因果关系。假设我们的数据集有十个模式,其中目标是头部,十个目标是尾部。然后我们随机划分数据,比如 100 次,每次训练和测试一个分类器,每个分类器包含一半的数据。现在测试分区的错误率平均为 0.5(因为它预测随机抛硬币),但每个分区的错误率不会是 0.5 - 在某些情况下,随机概率会高于 0.5在某些情况下会更低。这是一个随机过程,因此在某些情况下,在训练分区上学习的随机分类器的输出与测试标签的相关性要好于在其他分区中的相关性。然而这种变化只是随机噪声,所以如果你选择准确率最高的分区,这表明分类器在预测随机硬币翻转方面有一定的实际技能,但我们知道不可能是这样。明显的技能是虚假的,是由使用有偏差的性能估计造成的。但是每个分区的错误率不会是 0.5 - 在某些情况下,它会随机高于 0.5,在某些情况下会更低。这是一个随机过程,因此在某些情况下,在训练分区上学习的随机分类器的输出与测试标签的相关性要好于在其他分区中的相关性。然而这种变化只是随机噪声,所以如果你选择准确率最高的分区,这表明分类器在预测随机硬币翻转方面有一定的实际技能,但我们知道不可能是这样。明显的技能是虚假的,是由使用有偏差的性能估计造成的。但是每个分区的错误率不会是 0.5 - 在某些情况下,它会随机高于 0.5,在某些情况下会更低。这是一个随机过程,因此在某些情况下,在训练分区上学习的随机分类器的输出与测试标签的相关性要好于在其他分区中的相关性。然而这种变化只是随机噪声,所以如果你选择准确率最高的分区,这表明分类器在预测随机硬币翻转方面有一定的实际技能,但我们知道不可能是这样。明显的技能是虚假的,是由使用有偏差的性能估计造成的。因此在某些情况下,在训练分区上学习到的随机分类器的输出与测试标签的相关性要好于在其他分区中的相关性。然而这种变化只是随机噪声,所以如果你选择准确率最高的分区,这表明分类器在预测随机硬币翻转方面有一定的实际技能,但我们知道不可能是这样。明显的技能是虚假的,是由使用有偏差的性能估计造成的。因此在某些情况下,在训练分区上学习到的随机分类器的输出与测试标签的相关性要好于在其他分区中的相关性。然而这种变化只是随机噪声,所以如果你选择准确率最高的分区,这表明分类器在预测随机硬币翻转方面有一定的实际技能,但我们知道不可能是这样。明显的技能是虚假的,是由使用有偏差的性能估计造成的。
我在此处的统计信息 SE 上使用了一个类似的示例(带有代码)来解释为什么如果我们执行基于交叉验证的特征选择,然后尝试使用该交叉验证作为性能估计(它会有很大的偏见)。先读一读可能会有所帮助。
本质上,如果我们想要一个无偏的性能估计,我们不应该在查看测试数据后对模型或其评估做出任何选择。前段时间我写了一篇关于这个的论文,因为这是模型选择的一个非常常见的错误(例如优化超参数):
Gavin C. Cawley 和 Nicola LC Talbot,“论模型选择中的过度拟合和性能评估中的后续选择偏差”,机器学习研究杂志,11(70):2079−2107, 2010 ( www )