Tensorflow/Keras:标准化训练/测试/实时数据或如何处理现实?
Tensorflow / Keras: Normalize train / test / realtime Data or how to handle reality?
我开始开发一些 LSTM 模型,现在对规范化有一些疑问。
假设我有一些大致介于 +500 和 -500 之间的时间序列数据。将数据从 -1 缩放到 1 是否更现实,或者 0 到 1 是更好的方法,我测试了它并且 0 到 1 似乎更快。有错误的方法吗?还是学起来会更慢?
第二个问题:什么时候归一化数据?我将数据拆分为训练数据和测试数据,是否必须分别对这些数据进行缩放/归一化?也许训练数据的范围仅在 +300 到 -200 之间,而测试数据的范围从 +600 到 -100。我猜这不是很好。
但另一方面...如果我缩放/规范化整个数据帧并在之后拆分它,数据可以很好地用于训练和测试,但我如何处理真正的新输入数据?该模型经过训练以缩放数据,所以我也必须缩放新数据,对吗?但是如果新数据是 1000 呢?归一化会将其变成大于 1 的值,因为它比之前的所有值都大。
长话短说,我什么时候规范化数据以及全新数据会怎样?
我希望我能说清楚我的问题是什么:D
非常感谢!
也想知道如何处理现实……
但要严肃地说:
1。如何规范化数据
通常,神经网络受益于来自高斯标准分布的数据(均值 0
和方差 1
)。
Batch Normalization(简化)等技术有助于神经网络在整个网络中具有这种特性,因此通常是有益的。
您还提到了其他方法,可以可靠地告诉您对哪个问题和指定的体系结构有什么帮助,您只需检查和衡量即可。
2。测试数据呢?
均值减去和方差除以每个实例(或您通过前面提到的任何规范化方案收集的任何其他统计数据)应该从您的训练数据集中收集。如果你从测试中获取它们,你会执行数据泄漏(关于测试分布的信息被纳入训练)并且你可能会产生错误的印象你的算法比实际表现更好。
因此只需计算训练数据集的统计数据并将它们也用于 incoming/validation/test 数据。
我开始开发一些 LSTM 模型,现在对规范化有一些疑问。
假设我有一些大致介于 +500 和 -500 之间的时间序列数据。将数据从 -1 缩放到 1 是否更现实,或者 0 到 1 是更好的方法,我测试了它并且 0 到 1 似乎更快。有错误的方法吗?还是学起来会更慢?
第二个问题:什么时候归一化数据?我将数据拆分为训练数据和测试数据,是否必须分别对这些数据进行缩放/归一化?也许训练数据的范围仅在 +300 到 -200 之间,而测试数据的范围从 +600 到 -100。我猜这不是很好。
但另一方面...如果我缩放/规范化整个数据帧并在之后拆分它,数据可以很好地用于训练和测试,但我如何处理真正的新输入数据?该模型经过训练以缩放数据,所以我也必须缩放新数据,对吗?但是如果新数据是 1000 呢?归一化会将其变成大于 1 的值,因为它比之前的所有值都大。
长话短说,我什么时候规范化数据以及全新数据会怎样?
我希望我能说清楚我的问题是什么:D
非常感谢!
也想知道如何处理现实……
但要严肃地说:
1。如何规范化数据
通常,神经网络受益于来自高斯标准分布的数据(均值 0
和方差 1
)。
Batch Normalization(简化)等技术有助于神经网络在整个网络中具有这种特性,因此通常是有益的。
您还提到了其他方法,可以可靠地告诉您对哪个问题和指定的体系结构有什么帮助,您只需检查和衡量即可。
2。测试数据呢?
均值减去和方差除以每个实例(或您通过前面提到的任何规范化方案收集的任何其他统计数据)应该从您的训练数据集中收集。如果你从测试中获取它们,你会执行数据泄漏(关于测试分布的信息被纳入训练)并且你可能会产生错误的印象你的算法比实际表现更好。
因此只需计算训练数据集的统计数据并将它们也用于 incoming/validation/test 数据。