规范化/标准化训练和验证数据

数据挖掘 机器学习 神经网络 正常化
2022-03-17 03:57:27

假设我将数据拆分为 80% 的训练和 20% 的测试/验证,并且我想对其进行标准化,我认为我说我不应该对 100% 的数据进行标准化,然后进行拆分,因为那时验证对训练数据有一些了解?

我不确定我是否应该

1) 对 80% 的训练数据生成均值和标准差统计数据,然后应用相同的均值/标准差对验证数据进行标准化。

或者 2) 将训练数据标准化,然后对验证数据进行标准化,即从训练数据的 80% 导出均值和 SD,然后对 20% 的验证数据分别导出均值/SD?

非常感谢

1个回答

是的,测试数据可能包含一些您没有从测试集中学到的重要内容。不,您不能使用测试集进行学习。

测试集的目的是了解系统在训练期间未看到的新数据上的表现。在测试集中安装你的缩放器会破坏这个目的。

1) 对 80% 的训练数据生成均值和标准差统计数据,然后应用相同的均值/标准差对验证数据进行标准化。

这就是你应该做的。

或者 2) 将训练数据标准化,然后对验证数据进行标准化,即从训练数据的 80% 导出均值和 SD,然后对 20% 的验证数据分别导出均值/SD?

这是有效的,如果你的生产系统是这样的。因此,如果您分批获取数据并规范化批次,它也可能没问题。