machine-learning - 为 RNN 设置正确的输入

标签 machine-learning neural-network lstm normalization recurrent-neural-network

在数据库中有带有记录的时间序列数据:

  • 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 :
    enter image description here
    我需要在 python 中使用 RNN 类进行警报预测。我们定义警报时 temperature低于 min limit或以上 max limit .
    阅读tensorflow的官方文档后here ,我在理解如何设置模型的输入时遇到了麻烦。我应该事先规范化数据还是其他什么,如果是,如何规范化?
    也在阅读答案 here也没有帮助我清楚地了解如何将我的数据转换为 RNN 模型可接受的格式。
    关于如何 X 的任何帮助和 Ymodel.fit应该看起来像我的情况?
    如果您看到有关此问题的任何其他问题,请随时发表评论。
    附注。我已经设置了 pythondockertensorflow , 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


    是的,预处理您的原始数据是必不可少的。我认为这里有两件重要的事情要做:
  • 使用 min-max 或标准化( wikisklearn preprocessing )对温度值进行标准化。另外,我会添加一些平滑。
  • 从所有时间序列中删除最后时间戳的一部分以避免信息泄漏。

  • 最后,我想说这个任务比看起来更复杂。您可能想要找到关于时间序列分类的良好入门教程,或者一般的机器学习类(class)。我相信你可以找到比 RNN 更好的方法。

    关于machine-learning - 为 RNN 设置正确的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63227352/

    相关文章:

    python - 在 Tensorflow 2.0 中的简单 LSTM 层之上添加 Attention

    keras - LSTM 文本分类准确率低 Keras

    python - 我需要如何配置 Keras 模型来预测图像?

    graph - 如何在tensorflow MNIST教程中输出预测值(标签)?

    machine-learning - 用于从文本中提取 Action 的 NLP

    python - tf.layers.dense 是单层吗?

    machine-learning - 什么是卷积神经网络的深度?

    python - KNeighborsClassifier 中如何使用参数 "weights"?

    machine-learning - 如何调整 L2 正则化

    python - tensorflow /tflearn 输入形状