时间序列模型用于哪种预测,时间序列预测模型实验报告

  时间序列模型用于哪种预测,时间序列预测模型实验报告

  转载来源: https://珠兰。智惠106 . com/p/290683144

  这个数据是1949年到1960年12年间,每年12个月航班的乘客数据,共有144个数据,单位为1000个。用它进行了长短期记忆网络时间序列预测的实验。

  数据如图所示

  第一列是时间第二列是数据

  创建代码头

  importnumpimportmatplotlib。pyplotaspltfromkeras。模型从keras导出。layersimportdensefromkeras。层导入dimportosfromkeras。模型输入序列,负载_模型加载数据

  在此,将时间序列数据的前65%作为训练数据的后35%作为测试数据

  数据帧=PD.read _ CSV(./国际-航空公司-乘客. CSV(,usecols=[1],engine=python ),skip footer=3)dataset=数据框。价值观#有关将整数转换为float dataset=dataset.as类型( float 32 ) #规范化,以下步骤说明scaler=minmaxscaace)dataset=scaler。fit _ transform(数据集)train _ size=int(len(数据集)* 0

  为了LTM进行预测,时间序列数据需要预测从前一个时间步长步骤开始之后的数据

  假设你给它一个数据集

  {

  甲、乙、丙-丁

  b、c、D-E

  中、英、法、东

  d、e、F-G

  英、法、俄、西

  }

  在这种情况下,时间步长根据3,即前3个数据来预测下一个数据的值

  需要转换数据

  举个简单的例子,假设目录为[1、2、3、4、5],时间步长=2

  我们转换后要达到的效果是

  火车_火车_Y

  即,根据前两个值预测下一个值

  将数据正规化

  长短期记忆网络可以不执行规范化操作,但这样会减缓训练模型失败的下降。如果本教程没有规范化,则在100次迭代后失败仍然很高

  #上的代码片段解释了scaler=minmax scaler(feature _ range=(0,1))dataset=scaler。拟合_变换)处理数据

  efcreate_dataset(dataset,look_back ) :#)这里的回望与时间步长相同的dataX,dataY=[],[]for iinrange(len(dataset(-look _ back-1):a=dataset)I:)Ilook _ back)]dataX。追加数字。数组)数据)训练数据太少,回头看看太大,无法达到look_back=1trainX,trainy=create_dataser)

  输入长短期记忆网络为[样本、时间步长、特征]

  这里的时间步长是步数,功能是维,我们在这里的数据是一维的

  trainx=numpy . shape(trainx,(trainX.shape[0],trainX.shape[1],1))testx=numpy。reshape))testx 1)# createandithelstmnewolmodel=sequential()模型。add)lstm(4,input_shape=) none,1)模型。add()optimizer= Adam )模型。适合verbose=2)模型。保存(操作系统。路径。join( data , Test H5 )# make preve

  # model=load _ model(OS路径。加入(数据,测试 H5 )(训练预测=模型)。预测(trainx)测试预测=模型。预测)testx)#逆归一化trainpredict=scainpredict))表示trainy=scaler。逆变换测试预测=scaler.inverse _ transe

  PLT。绘图(训练)绘图。plot)训练预测[1:](PLT。show))PLT。PLT(测试)PLT。剧情)测试预测【1334】

  参考资料

  使用长短期记忆网络的时间序列预测的一个小例子

  克拉斯中文文档-序列模型

时间序列模型用于哪种预测,时间序列预测模型实验报告