Python深度学习教程:LSTM时间序列预测小练习—国航乘客数量预测

参考数据:

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

对数据做可视化:import math

import 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

#将整型变为float

dataset = dataset.astype('float32')

plt.plot(dataset)

plt.show()

可视化结果:

下面开始进行建模:

完整代码:import math

import 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.values

dataset = 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_size

train,test = dataset[0:train_size,:],dataset[train_size:len(dataset),:]

look_back = 1

trainX,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 predictions

trainPredict = model.predict(trainX)

testPredict = model.predict(testX)

# invert predictions

trainPredict = scaler.inverse_transform(trainPredict)

trainY = scaler.inverse_transform([trainY])

testPredict = scaler.inverse_transform(testPredict)

testY = scaler.inverse_transform([testY])

# calculate root mean squared error

trainScore = 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 plotting

trainPredictPlot = numpy.empty_like(dataset)

trainPredictPlot[:, :] = numpy.nan

trainPredictPlot[look_back:len(trainPredict)+look_back, :] = trainPredict

# shift test predictions for plotting

testPredictPlot = numpy.empty_like(dataset)

testPredictPlot[:, :] = numpy.nan

testPredictPlot[len(trainPredict)+(look_back*2)+1:len(dataset)-1, :] = testPredict

# plot baseline and predictions

plt.plot(scaler.inverse_transform(dataset))

plt.plot(trainPredictPlot)

plt.plot(testPredictPlot)

plt.show()

运行结果:

本次的Python学习教程!

python时间序列分析航空旅人_Python深度学习教程:LSTM时间序列预测小练习—国航乘客数量预测...相关推荐

  1. python时间序列分析航空旅人_python时间序列分析

    一.什么是时间序列 时间序列简单的说就是各时间点上形成的数值序列,时间序列分析就是通过观察历史数据预测未来的值. 在这里需要强调一点的是,时间序列分析并不是关于时间的回归,它主要是研究自身的变化规律的 ...

  2. python时间序列分析航空旅人_用python做时间序列预测一:初识概念

    利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时 ...

  3. python时间序列分析航空旅人_大佬整理的Python数据可视化时间序列案例,建议收藏(附代码)...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 时间序列 1.时间序列图 时间序列图用于可视化给定指标如何随时间变化.在这 ...

  4. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)

    时间序列概念:在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻 所得到的离散数字组成的序列集合,称之为时间序列.时间序列分析是根据系统观察得到的时间序列数据,通过曲线拟合和参数估 ...

  5. python读取文件数据恢复软件_python深度学习pdf恢复

    3步快速找回,让数据恢复变得简单 版权所有 1990-2020 B计划信息技术有限公司 python深度学习pdf python深度学习pdf Windows 10,Windows 7,Windows ...

  6. python能做机器人吗_python深度学习 人工智能是做机器人吗?

    我们经常听到"Python"与"人工智能"这两个词, 也很容易混淆这两个词, 那么Python和人工智能到底什么关系呢? Python人工智能工程师待遇怎么样? ...

  7. python如何实现找图_Python深度学习,手把手教你实现「以图搜图」

    随着深度学习的崛起,极大的推动了图像领域的发展,在提取特征这方面而言,神经网络目前有着不可替代的优势.之前文章中我们也介绍了图像检索往往是基于图像的特征比较,看特征匹配的程度有多少,从而检索出相似度高 ...

  8. python、C++、机器学习、深度学习-------资源、代码练习的常用网站大全

    一.13万第三方库的下载查询网站:pypi 网站:https://pypi.org/ 二.UCI页面(在windows操作系统上,可以下载的第三方库(编译后的版本)) 网站:https://www.l ...

  9. 自学python要到什么程度-学好深度学习,Python 得达到什么程度?

    如今,网络上的Python机器学习资源纷繁复杂,使得刚入门的小白们眼花缭乱.究竟从哪里开始?如何进行?云栖君给你推荐以下内容,相信读完你就会有自己的答案. "开始",是一个令人激动 ...

最新文章

  1. 浅谈使用SQLBulkCopy批量数据入库
  2. 性能优化指南:性能优化的一般性原则与方法
  3. yum安装zlib出错
  4. boost::detail模块实现宏BOOST_DETAIL_IS_XXX_DEF的测试程序
  5. Hadoop之HDFS常用Shell命令
  6. java jndi使用_Java项目中使用JNDI连接数据库
  7. MySQL 基础 ———— 分组查询
  8. C#winform抓取百度,Google搜索关键词结果
  9. 数据字典在sga的哪一个组件中缓存_非功能性约束之性能(1)-性能银弹:缓存...
  10. lnmp python _mysql web_Nginx+uWSGI+DJango+Python+ Mysql 搭建可靠的python web服务器
  11. sqlserver 数据多行以逗号分隔成一行
  12. C# Get请求携带body
  13. 【定位问题】基于matlab RSSI和模拟退火优化粒子群算法求解无线传感器网络定位问题【含Matlab源码 1766期】
  14. Android布局基础知识
  15. eyoucms相关问题总结
  16. 数据结构和算法(Java),上
  17. Prometheus监控系统
  18. 程序员去国企面试,跟领导谈完技术感叹:给再多的工资也不考虑
  19. 戴尔 DELL 游戏笔记本电脑 - Windows 10 关闭或开启功能键 (Fn key)
  20. 【数据结构】红黑树入门知识

热门文章

  1. Python零基础入门基础教程(非常详细)
  2. EduCoder实践课程——Python零基础到精通 参考答案(七)
  3. [Git]git的一些常用操作笔记
  4. 计算机毕业设计ssm网上书店商城
  5. linux下mq qm.ini路径,MQ调优Linux参数检查
  6. 一文看懂数据清洗:缺失值、异常值和重复值的处理
  7. 1.02的4次方计算机怎么按,【一〇五二 | 知识】1.02的365次方是1377.4
  8. 华维单片机编程:仿真软件适合单片机初学者吗
  9. php7可变参数,7PHP可变变量
  10. 一款基于VUE的动态化弹出层插件