基于lstm的时间序列预测,基于cnn的时间序列预测模型

  基于lstm的时间序列预测,基于cnn的时间序列预测模型

  1 keras 1.1入门资源:

  33559 www.bilibili.com/video/b v1 CT 411 H7 RM?from=search seid=13437359564386162135

  Keras是

深度学习框架

,比tensorflow好用。

  Tensorflow、pytorch、keras和keras是目前深度学习框架中最常用的,速度大约是tensorflow的两倍。

  3558 www.Sina.com/:安装python环境后,安装张量流(有CPU和GPU版本,为简单起见,可以安装CPU版本),然后在命令行

  1.2简单线性回归模型按importkerasimpyasnimportmatplotlib . pyplosplt # sequential from keras . modelsimportsequential # Dense full connection layers from keras . layers导入Dense#,使用numpy随机函数生成x _ data=NP . rand . rand(100)noise=NP . random . normal)0x _ data . shape(y _ data)

  # sequence model=sequential(# add all connection layer(Dense)model . add)参数到模型(Dense) units=1,Input_dim=1)))输入输出的意义y) #编译模型#sgd:随机梯度下降法#mse:均方误差model.pile (optimizer= SGD ,loss=mse ))为了输出训练模型,一批cost=model。需要循环迭代的forstepinrange的train _ on _ batch (x _ data,y_data)列出成本值if step P0==0:print)batch 360 b=model。图层[0]。Get _ weights(打印(w:

  1.3非线性回归增量隐藏层是设置激活函数,如果激活函数没有设置,默认是线性激活函数。

  2 3358www.Sina.com/如何被LSTM改成LSTM的3358www。Sina.com/?

  (仅考虑一维数据)

  LSTM时间序列预测可以实现单步预测和多步预测

安装

:单步预测一步

时间序列数据

:三步预测三步。

  将时间序列数据转换为LSTM的训练数据函数如下。

  输入时间序列数据,输入大小步长预测输出大小步长

  Ef _ split(数据,输入大小,输出大小):X,Y=[],[]Y . append(arr[I input _ size 3360 I input _ t]

  x,y=data_split(dat,3,3)n具有2* 25数据的数组

  x,y为40* 3的ndarray数组

输入输出数据

LSTM的输入格式为(n,t,m)

  n:训练数据的长度

  t:以上模型为三输入三输出模型,t为3。

  M:1(一维,所以数据特征的维数为()))))))))))))。

  因此,需要对输入数据进行处理

  在x=NP . shape(x,)x.shape[0],3,1)) x,y之后,模型构造如下。

  n _ in=x.shape [1] n _ features=。shape[2]n _ out=y . shape[1]model=create _ model(n _ in,n_feer)

  defcreate_model(n_in,n_features,n _ out):model=Sequential)(model . add)lstm)128,activation=

  error _ matrix=[]for steprange(1001):#)训练1000次cost=model.train_on_batch(x,y) error _ step,)cost:),Cost)y _ train _ pred=model . predict(x)train _ error=NP . mean(ABS(y _ train _ pred)% )PLT . plot(error _ matrix)PLT . xlabel)、训练次数)、plt.ylabel)和

  LSTM模型的预测结果如图所示。

  (本图只使用了前22个数据训练模型,模型为3-3。)

  附录3子功能的构建

  DEF _ MODEL _ RNN (N _ OUT):模型1=顺序)模型1。添加(SIMPLENN) 128)(模型1)。添加活动DD) activation)) relu))激活层模型1。编译)优化器=)更新

基于lstm的时间序列预测,基于cnn的时间序列预测模型