tensorflow /Keras : Normalize train/test/realtime Data or how to handle reality?

标签 tensorflow keras normalization

我开始开发一些 LSTM 模型,现在有一些关于标准化的问题。

假设我有一些时间序列数据,范围大致在 +500 到 -500 之间。将数据从 -1 缩放到 1 更现实,还是 0 到 1 更好,我测试了它,0 到 1 似乎更快。是不是有什么方法不对呢?或者只是学习速度变慢?

第二个问题:什么时候对数据进行标准化?我将数据分为训练数据和测试数据,是否必须分别缩放/规范化这些数据?也许训练数据的范围仅在+300到-200之间,而测试数据的范围在+600到-100之间。我想这不太好。

但另一方面......如果我缩放/标准化整个数据帧并随后将其分割,数据对于训练和测试来说很好,但是我如何处理真正的新传入数据?该模型是针对缩放数据进行训练的,所以我也必须缩放新数据,对吧?但如果新数据是 1000 呢?标准化会将其变成大于 1 的值,因为它比之前的所有其他数字都大。

长话短说,我什么时候标准化数据以及全新数据会发生什么?

我希望我能弄清楚我的问题是什么:D

非常感谢!

最佳答案

我也想知道如何处理现实......

但严肃地说:

1。如何标准化数据

通常,神经网络受益于来自高斯标准分布的数据(平均值 0 和方差 1)。

诸如批量归一化(简化)之类的技术可以帮助神经网络在整个网络中具有这种特性,因此通常是有益的。

您提到的其他方法可以可靠地告诉您哪些方法对哪个问题和指定的架构有帮助,您只需检查和测量即可。

2。测试数据怎么样?

应从训练数据集中收集每个实例的减去平均值和方差(或通过前面提到的任何标准化方案收集的任何其他统计数据)。如果您从测试中获取它们,则会执行数据泄漏(有关测试分布的信息已合并到训练中),并且您可能会得到错误的印象,即您的算法比实际表现更好。

因此,只需计算训练数据集的统计数据并将其用于传入/验证/测试数据即可。

关于 tensorflow /Keras : Normalize train/test/realtime Data or how to handle reality?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075431/

相关文章:

tensorflow - 像在 Keras 中一样显示 Tensorflow 模型摘要

python - 索引错误: list index out of range when save model in tensorflow

python - CNN 的输入形状不兼容

css - 规范化 CSS,JSFiddle 中的选项,如何将其添加到文档中

machine-learning - 先PCA还是先归一化?

python - Tensorflow py3.5 从源代码 : "not a supported wheel"? 安装

python - 使用 TensorFlow 进行图像识别

python - Keras model.fit ValueError : Input arrays should have the same number of samples as target arrays

python - 在keras中创建一个神经网络来乘以两个输入整数

r - 如何在 R 中进行 ma 和 loess 归一化?