标准化一组数据集的最佳方法是什么

数据挖掘 深度学习 喀拉斯 时间序列 正常化 预测
2022-02-19 15:20:39

我有一个数据集,其中包含不同日期的相同时间序列“传感器读数”,我想建立一个深度学习模型来预测这些值。我所做的是根据日期将数据分解为时间序列数据,然后分别对其进行归一化(最小值-最大值)(读数有不同的范围,例如,第一天的最大值为 100,但最大值为第二个是48)但我现在真的很困惑我需要使用所有天的最大值/最小值来标准化它还是我所做的是对的?

2个回答

如果您知道传感器输出的严格界限,那将比通过数据集的最小值/最大值进行归一化更好。即使界限不一定是严格的,而只是合理的,那也足够了。例如,如果温度传感器没有理论上的界限,你可以合理地强加严格的界限给定关于其环境的先验知识(例如,如果温度传感器放置在纽约,你可能会假设严格的界限为 -30C 到 50C)

如果您要通过训练数据的最小值/最大值进行归一化,如果部署的模型遇到此范围之外的值,您会发生什么?例如,如果您的训练集最小为 5,最大为 30,您将如何对 -10 的输入进行归一化?向上移动到非负域(即减去您的严格最小值),然后通过严格范围缩放到 [0,1] 中的值会更加直观和可靠。

此外,根据您的神经元激活功能,除了缩放数据外,还可以考虑将数据居中。

您应该使用包括数据集中所有历史数据的总最小值/最大值来应用和标准化。您的模型期望在该特征中的所有测量中在每个特征中进行相同的归一化。例如

sensor_1_day_1 -> 0, 1, 2, 2, 3 sensor_1_day_2 -> 0, .1, .3, .4, .1

用 [0,3] 的 [min,max] 对这两天的 sensor_1 进行归一化并归一化

sensor_1_day_1_norm -> 0/3, 1/3, 2/3, 2/3, 3/3 sensor_1_day_2_norm -> 0/3, .1/3, .3/3, .4/3, .1/3

不要忘记对预测进行反规范化(在本例中乘以 3),因为它们也会被规范化。旁注:如果您对每一天应用不同的规范化,并且必须以不同的方式去规范化每一天,这将是非常复杂的记忆和处理。