Python怎么实现LSTM时间序列预测
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"Python怎么实现LSTM时间序列预测",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Python怎么实现LSTM时间序列预测"吧!参考
千家信息网最后更新 2024年11月30日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安全错误
数据库的锁怎样保障安全
商品数据库设计书籍
网络安全应该考虑哪些
数据库更新查询将数值增大
数据库误差系数
文明重启怎么获得服务器
和平精英怎么看哪个服务器最好
iot服务器架构
计算机网络技术行业分析小结
数据库生成excel
网络安全 组织机构建设
CSR 软件开发
c解析crv文件到数据库
服务器安全设置 十三
寿阳天气预报软件开发
国外服务器加速
机架式服务器装系统好装吗
新松软件开发待遇
网络安全监管检查报告
广州炎阳软件开发
云服务器桌面英文改中文
国产串口联网服务器厂家
iot服务器架构
兰州网络安全整改报告
某项目管理系统设计数据库
数据库中 怎么读取
百度地图数据库官网
动态切数据库源
广晟服务器
软件开发界面标准规范
嘉兴智慧工厂软件开发