使用Keras和Tensorflow进行多维时间序列的RNN时间序列预测

我正在尝试在一个时间序列集上运行一个RNN/LSTM网络。需要提到的是,这些时间序列是进行分类处理的。我有大约600个不同的时间序列,每个时间序列有930个时间步,每个时间步内包含特征。我将数据结构化为一个三维的numpy数组,结构如下:

X = [666 observations/series, 930 timesteps in each observation, 15 features]Y = [666 observations/series, 930 timesteps in each observation, 2 features]

对于训练和验证数据,我将数据按70/30的比例进行分割。因此,Train_X = [466, 930, 15] 以及 Train_Y = [200, 930, 2]。

我的网络出现了一个错误,指出期望输入是二维的,但得到的数组形状为(466, 930, 2)。我的代码如下:

from sklearn.preprocessing import MinMaxScalerfrom sklearn.preprocessing import LabelEncoderfrom sklearn.metrics import mean_squared_errorfrom keras.models import Sequentialfrom keras.layers import Densefrom keras.layers import LSTMfrom keras.layers import BidirectionalTrain_X = new_ped_data[0:466]Test_X = new_ped_data[466:]Train_Y = new_ped_valid_data[0:466]Test_Y = new_ped_valid_data[466:]model = Sequential()model.add(Bidirectional(LSTM(20, return_sequences=True),                        input_shape=Train_X.shape[1:]))model.add(Bidirectional(LSTM(10)))model.add(Dense(5))model.compile(loss='mae',               optimizer='rmsprop')model.fit(Train_X, Train_Y, epochs = 30, batch_size = 32,       validation_data =(Test_X, Test_Y))

我只是想让模型运行起来。一旦成功,我会调整架构和拟合参数。我应该提到,其中一个分类输出可能不是必要的。关于如何设置架构,以便当输入一个时间序列时,我可以得到网络对每个时间步的分类值,有什么建议吗?

Error was: ValueError: Error when checking target: expected dense_9 tohave 2 dimensions, but got array with shape (466, 930, 2)

回答:

你的输出也具有序列性质。默认情况下,LSTMreturn_sequences标志为False。这使得在第二个LSTM层之后,你的序列被压缩成一个向量。为了改变这一点,请尝试:

model = Sequential()model.add(Bidirectional(LSTM(20, return_sequences=True),                    input_shape=Train_X.shape[1:]))model.add(Bidirectional(LSTM(10, return_sequences=True)))model.add(Dense(5))model.compile(loss='mae',           optimizer='rmsprop')

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注