通过分离依赖变量和自变量来进行时间序列预测

时间:2018-04-12 03:38:24

标签: tensorflow keras

假设我有这样的数据:

date                  pollution  dew  temp   press wnd_dir  wnd_spd  snow  rain    
2010-01-02 00:00:00      129.0  -16  -4.0  1020.0      SE     1.79     0     0
2010-01-02 01:00:00      148.0  -15  -4.0  1020.0      SE     2.68     0     0
2010-01-02 02:00:00      159.0  -11  -5.0  1021.0      SE     3.57     0     0
2010-01-02 03:00:00      181.0   -7  -5.0  1022.0      SE     5.36     1     0
2010-01-02 04:00:00      138.0   -7  -5.0  1022.0      SE     6.25     2     0

我想将神经网络应用于pollution的时间序列预测。 应该注意的是,其他变量:dew, temp, press, wnd_dir, wnd_spd, snow, rainpollution的独立变量。 如果我在here中实现LSTM,LSTM会将所有变量学习为独立的;模型可以预测所有变量。

但没有必要预测所有自变量,唯一的要求是pollution,一个因变量。

有没有办法实现LSTM或其他更好的架构,通过将其他独立变量视为独立变量来学习和预测因变量,并更好地预测污染?

1 个答案:

答案 0 :(得分:1)

似乎该示例仅预测pollution。如果您看到reframed

   var1(t-1)  var2(t-1)  var3(t-1)  var4(t-1)  var5(t-1)  var6(t-1)  \
1   0.129779   0.352941   0.245902   0.527273   0.666667   0.002290
2   0.148893   0.367647   0.245902   0.527273   0.666667   0.003811
3   0.159960   0.426471   0.229508   0.545454   0.666667   0.005332
4   0.182093   0.485294   0.229508   0.563637   0.666667   0.008391
5   0.138833   0.485294   0.229508   0.563637   0.666667   0.009912

   var7(t-1)  var8(t-1)   var1(t)
1   0.000000        0.0  0.148893
2   0.000000        0.0  0.159960
3   0.000000        0.0  0.182093
4   0.037037        0.0  0.138833
5   0.074074        0.0  0.109658

var1似乎是pollution。如您所见,您拥有所有变量的上一步(t-1)的值以及tpollution)的当前步骤var1(t)的值。

这个最后一个变量是示例作为y提供的内容,如行中所示:

# split into input and outputs
train_X, train_y = train[:, :-1], train[:, -1]
test_X, test_y = test[:, :-1], test[:, -1]

因此,网络应该只在pollution预测。