许多线程(和课程),例如this和this one建议您应该使用训练集中使用的参数对测试数据进行标准化。但是我发现的其他一些讨论,比如这个和这个,表明对测试集应用归一化并不是真正需要的,它可能取决于许多因素,例如用于训练的模型或测试数据的性质。
现在,就个人而言,我更倾向于对测试数据应用归一化。但问题是这样的:我正在研究一个神经网络模型,其中:
- 如果我使用推荐的方式应用归一化,我将获得 79% 的准确率,(老实说,这对我来说并不有趣)
- 如果以单独的方式对训练和测试应用归一化,我会得到 85%(有时甚至更多)的非常好的结果,并且我尝试将下一步工作做得更好的进一步步骤。
所以,如果我使用第二种方法,我不知道我的神经网络在测试看不见的数据上表现更好。我真的很想继续对这个特定模型使用第二种方法,但我对此感觉不太好,感觉它是错误的或作弊。
现在,我有最后一个论点。我提供的最后一个链接有一个答案是这样的:
“..这完全取决于数据集的大小以及训练和测试是否同样代表您尝试建模的领域。如果您有数千个数据点并且测试集完全代表训练集(很难来证明)那么任何一种方法都可以……”
我使用的数据集是其前身(NSL-KDD 数据集)的改进版本。作者说“在提议的测试集中没有重复的记录”并且他们已经删除了任何冗余值。所以我觉得,这个数据集是统一的,根据作者的说法,测试集实际上是有代表性的。那么我可以使用第二种方法吗?
Ps:对不起,如果这很长,这是一个研究伦理问题。我会按照你们推荐的方法。