千家信息网

Python怎么实现LSTM时间序列预测

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"Python怎么实现LSTM时间序列预测",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python怎么实现LSTM时间序列预测"吧!参考
千家信息网最后更新 2026年11月01日Python怎么实现LSTM时间序列预测

本篇内容主要讲解"Python怎么实现LSTM时间序列预测",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python怎么实现LSTM时间序列预测"吧!

参考数据:

数据一共两列,左边是日期,右边是乘客数量


对数据做可视化:

import mathimport numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import read_csv from keras.models import Sequential from keras.layers import Dense from keras.layers import LSTM from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error #load dataset dataframe = read_csv('./international-airline-passengers.csv',usecols =[1],header = None,engine = 'python',skipfooter = 3)dataset = dataframe.values#将整型变为floatdataset = dataset.astype('float32')plt.plot(dataset)plt.show()

可视化结果:

下面开始进行建模:

完整代码:

import mathimport numpy import pandas as pd import matplotlib.pyplot as plt from pandas import read_csv from keras.models import Sequential from keras.layers import Dense from keras.layers import LSTM from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error def create_dataset(dataset,look_back = 1):        dataX,dataY = [],[]        for i in range(len(dataset) - look_back - 1):                a = dataset[i:i+look_back,0]                b = dataset[i+look_back,0]                dataX.append(a)                dataY.append(b)        return numpy.array(dataX),numpy.array(dataY)numpy.random.seed(7)dataframe = read_csv('./international-airline-passengers.csv',usecols = [1],header = None,engine = 'python')dataset = dataframe.valuesdataset = dataset.astype('float32')scaler = MinMaxScaler(feature_range = (0,1))dataset = scaler.fit_transform(dataset)train_size = int(len(dataset) * 0.67)test_size = len(dataset) - train_sizetrain,test = dataset[0:train_size,:],dataset[train_size:len(dataset),:]look_back = 1trainX,trainY = create_dataset(train,look_back)testX,testY = create_dataset(test,look_back)#reshape input to be [samples, time steps, features]trainX = numpy.reshape(trainX,(trainX.shape[0],look_back,trainX.shape[1]))testX = numpy.reshape(testX,(testX.shape[0],look_back,testX.shape[1]))#create and fit the LSTM network model = Sequential()model.add(LSTM(4,input_shape = (1,look_back)))model.add(Dense(1))model.compile(loss = 'mean_squared_error',optimizer = 'adam')model.fit(trainX,trainY,epochs = 100,batch_size = 1,verbose = 2)# make predictionstrainPredict = model.predict(trainX)testPredict = model.predict(testX)# invert predictionstrainPredict = scaler.inverse_transform(trainPredict)trainY = scaler.inverse_transform([trainY])testPredict = scaler.inverse_transform(testPredict)testY = scaler.inverse_transform([testY])# calculate root mean squared errortrainScore = math.sqrt(mean_squared_error(trainY[0], trainPredict[:,0]))print('Train Score: %.2f RMSE' % (trainScore))testScore = math.sqrt(mean_squared_error(testY[0], testPredict[:,0]))print('Test Score: %.2f RMSE' % (testScore))# shift train predictions for plottingtrainPredictPlot = numpy.empty_like(dataset)trainPredictPlot[:, :] = numpy.nantrainPredictPlot[look_back:len(trainPredict)+look_back, :] = trainPredict# shift test predictions for plottingtestPredictPlot = numpy.empty_like(dataset)testPredictPlot[:, :] = numpy.nantestPredictPlot[len(trainPredict)+(look_back*2)+1:len(dataset)-1, :] = testPredict# plot baseline and predictionsplt.plot(scaler.inverse_transform(dataset))plt.plot(trainPredictPlot)plt.plot(testPredictPlot)plt.show()

运行结果:

到此,相信大家对"Python怎么实现LSTM时间序列预测"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

序列 时间 时间序列 数据 内容 结果 可视化 学习 实用 更深 乘客 代码 兴趣 右边 实用性 实际 操作简单 数量 方法 日期 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技深圳 互联网科技公司税收优惠 美国互联网黑科技 易通互联网络科技有限公司 互联网科技公司介绍 互联网金融监管科技 互联网巨头投资的硬核科技 互联网之后的科技是什么 央行互联网金融科技公司 顶级互联网科技成果有哪些 宜昌元轩互联网科技有限公司 互联网科技扶贫时间 互联网科技人工智能实验室 互联网公司黑科技创始人 华夏恒生科技与互联网科技 梅州GM互联网络科技有限公司 云南互联网科技学费 北京品多多互联网科技有限公司 青岛互联网科技园 互联网科技自媒体灵感 互联网科技公司的优势 赫美联合互联网科技 互联网科技股有哪些 广州恒生互联网科技有限 互联网科技革命什么开始 速维有品互联网信息科技(苏州)有限公司 群盈汇互联网科技有限公司 有人说阿里系是互联网科技企业 云鲸互联网络科技有限公司 互联网科技品牌
0