在数据库中有带有记录的时间序列数据:
device
- timestamp
- temperature
- min limit
- max limit
device
- timestamp
- temperature
- min limit
- max limit
device
- timestamp
- temperature
- min limit
- max limit
每
device
有 4 小时的时间序列数据(间隔 5 分钟)在发出警报之前有 4 小时的时间序列数据(再次间隔 5 分钟)没有引发任何警报。该图更好地描述了数据的表示,对于每个 device
:我需要在 python 中使用 RNN 类进行警报预测。我们定义警报时
temperature
低于 min limit
或以上 max limit
.阅读tensorflow的官方文档后here ,我在理解如何设置模型的输入时遇到了麻烦。我应该事先规范化数据还是其他什么,如果是,如何规范化?
也在阅读答案 here也没有帮助我清楚地了解如何将我的数据转换为 RNN 模型可接受的格式。
关于如何
X
的任何帮助和 Y
在 model.fit
应该看起来像我的情况?如果您看到有关此问题的任何其他问题,请随时发表评论。
附注。我已经设置了
python
在 docker
与 tensorflow
, keras
等等,以防这些信息有帮助。
最佳答案
您可以从 a snippet 开始你在问题中提到的。
Any help on how the X and Y in model.fit should look like for my case?
X
应该是一个形状为 [num samples, sequence length, D]
的 numpy 矩阵,其中 D
是每个时间戳的多个值。我想 D=1
在您的情况下,因为您只传递温度值。y
应该是目标值的向量(如片段中所示)。二进制(警报/not_alarm)或连续(例如最大温度偏差)。在后一种情况下,您需要更改 sigmoid 激活以进行其他操作。Should i normalise the data beforehand
是的,预处理您的原始数据是必不可少的。我认为这里有两件重要的事情要做:
最后,我想说这个任务比看起来更复杂。您可能想要找到关于时间序列分类的良好入门教程,或者一般的机器学习类(class)。我相信你可以找到比 RNN 更好的方法。
关于machine-learning - 为 RNN 设置正确的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63227352/