如何格式化多变量LSTM(keras)的培训/测试数据,多个观察点和每个观察点的单一结果变量?

2024-05-19 08:41:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python中的keras运行多变量LSTM。我在多个地点收集多个变量随时间变化的观察结果。我想预测每个站点的单个数字结果(即,不是每个时间点的结果)。我的数据是这样的(尽管有200多个观测点、6个时间序列变量和大约900个时间点):

import pandas as pd

data = {'Site': ['A', 'B', 'C', 'D'],
       'var1_t0': [0.2, 0.0, 0.3, 0.6],
       'var1_t1': [0.5, 0.3, 1.0, 0.9],
       'var1_t2': [0.8, 0.1, 0.6, 0.7],
       'var2_t0': [0.4, 0.4, 0.0, 0.7],
       'var2_t1': [1.0, 0.2, 0.9, 0.8],
       'var2_t2': [0.5, 0.5, 0.1, 0.1],
       'outcome': [2, 5, 1, 3]}

df = pd.DataFrame(data)
print(df)

#   Site  var1_t0  var1_t1  var1_t2  var2_t0  var2_t1  var2_t2  outcome
# 0    A      0.2      0.5      0.8      0.4      1.0      0.5        2
# 1    B      0.0      0.3      0.1      0.4      0.2      0.5        5
# 2    C      0.3      1.0      0.6      0.0      0.9      0.1        1
# 3    D      0.6      0.9      0.7      0.7      0.8      0.1        3

我不知道我的培训和测试数据集需要采用什么格式才能在多个站点上运行LSTM。我看过的几个LSTM教程只使用一个站点进行分析(即data from one air pollution monitorpower output from one household)。在我看来,为了以每个站点都是一行的格式保存数据,LSTM必须知道如何将包括“t0”在内的所有变量放入第一个时间步,将包括“t1”在内的所有变量放入第二个时间步,依此类推。不幸的是,我不知道怎么做

对于每个站点运行一个单一数字结果的LSTM,对this question的回答提到可以为LSTM运行一个结果,但没有给出任何示例。同样,我想知道如何格式化培训和测试数据集

如果有什么我可以澄清的,请告诉我;这是我第一次与LSTM合作,所以我可能遗漏了一些重要的东西

任何帮助都将不胜感激,即使只是我问题的一部分


热门问题