为什么在对整个数据集进行归一化处理后,再将其划分为测试集和训练集会产生如此不良的影响?
我理解我们的模型会从归一化后的数据中提取整个分布信息,但我无法理解这种分布知识是如何导致测试数据记忆的。
能有人详细解释一下吗?
回答:
在推理时,你需要使用训练集的归一化参数(均值和标准差)。因此,测试集也应该采用同样的方法进行处理。
关于信息泄露:
假设你要预测某只股票(我们称之为A)的价格,并且你使用了另一只股票B的价格作为特征。特征是时间戳t1到时间戳t2的百分比变化。训练集包括5月至9月,测试集是10月。假设10月是一个非常波动的月份。如果你也用测试数据来归一化特征,这将大大改变特征。这意味着你给模型提供了一个提示,即10月份是波动的……然后,当然模型的结果会更好……但你给它提供了关于未来的信息……