Keras中的LSTM多对一预测示例

时间:2017-07-15 13:23:26

标签: label keras prediction lstm many-to-one

我想为像我这样的Keras新手创建多对一预测模型的示例。

假设4个正弦波彼此相差90度,使用三个来预测第四个。文档非常不清楚,例子是90%的CNN,其余的也是一种分类形式。

因此X1 X2和X3将分别为零,九十和两百七十。标签数据与第一个标签数据相差八十八。

那么如何构建Y?它是否与X相同,只是270度相位数据重复?有没有办法将Y数据作为单个输入本身?您是否必须使用Y数据的回顾?你可以为每个有回顾的X提交一个Y目标吗?

我在帖子中看过第一行,建议您可以使用features == 3来连接Y数据预测,但同样没有示例。

由于我已经看到同样的问题发布了许多不同的方法而没有解决方案,我愿意花一些时间创建一个最佳实践示例,并在Kaggle上创建了一个可以使用的数据集。 (https://www.kaggle.com/superdave/test-driven-data/downloads/FourOutOfPhaseWaves.csv

是否有一个示例或指针接近?

是的我想使用LSTM或GRU。我已经测试了许多单输入波形,并且取得了很好的效果。 https://www.kaggle.com/superdave/test-driven-data。我想发布一个解决方案但是看到单个最大的缺失示例是多对一LSTM预测。带有正弦波的玩具示例应该是社区的一个很好的补充。

1 个答案:

答案 0 :(得分:0)

您想要实现的一个简短示例。

x = np.random.rand(1000,3,1)
y = np.random.rand(1000,1)

x是包含3个正弦波的输入数据(3d数组)。 y是你在2D阵列中的第四波。

然后是一个简单的模型

model = Sequential()
model.add(LSTM(4,activation='relu',input_shape=(x.shape[1],x.shape[2])))
model.add(Dense(1,activation='linear'))
model.compile(optimizer='rmsprop',loss='mse')
model.fit(x,y,epochs=30)