LSTM+Transformer模型交通流量预测(Python代码,GRU/LSTM/CNN_LSTM作为对比模型,多特

作品简介

 测试集效果图(区域放大可以自己调整坐标,想放大哪部分都可以)

​编辑

 1.运行效果:

交通流量预测(python代码,压缩包中带有数据,CNN_GRU,CNN_BiGRU_ATTENTION,LSTM三种不同模型,解压缩三份代码可以直接运行)_哔哩哔哩_bilibili

环境库版本(如果库版本不一样, 一般也可以运行,这里展示我运行时候的库版本,是为了防止你万一在你的电脑上面运行不了,可以按照我的库版本进行安装并运行)

​编辑

2.数据来源:美国单方向交通流量(15条道路)

数据开始位置(每个15分钟采集数据,从9/03/2018 0:00开始,一直到10/31/2018 23:55,一共有12096行数据)

​编辑

数据截止位置 

​编辑

3.关于特征与标签选择(在交通流量预测方面主要有以下三种方式,本文是第二种)

3.1.第一种方式如下图所示


​编辑

每一行前14列(黄色部分) 作为特征输入,每一行的第15列值作为标签(蓝色部分)

这种方法非常不建议,因为,虽然拟合效果好,但是用同一时刻发生采集的数据作为特征和标签,没有实用性。

3.2.第二种方式如下图所示


​编辑

前6行的15列数据(黄色部分)作为特征输入,第7行的第十五列数据(蓝色部分)为标签。 

根据已获取的历史数据预测下一个时间点或者未来多个时间点 更符合实际。

 目前代码是对未来一个点的预测,如果需要对未来时刻多个点的预测,可以私信。

 3.3.第三种方式如下图所示


​编辑

 前6行的14列数据(黄色部分)作为特征输入,第7行的第十五列数据(蓝色部分)为标签。 

这种看起来更高级一些,但是结合实际情况,15列的历史数据是现实中能获取到的,特征输入没有必要故意不用第15列的历史数据 ,所以这份数据集,我推荐第二种,其它数据集可能第三种方案更符合实际情况。

4.项目文件

​编辑

第一个文件:CNN_GRU表格,装载的是CNN_GRU.py预测的测试集结果

第二个文件:CNN_GRU.py

第三个文件是数据,data15表格装载的是美国交通流量数据

第四个文件:GRU表格,转载的是GRU.py预测的测试集结果和测试集真实值

第五个文件:GRU.py

第六个文件:LSTM表格,转载的是LSTM.py预测的测试集结果和测试集真实值

第七个文件:LSTM.py

第八个文件:LSTM_Transform表格,转载的是LSTM_Transform预测的测试集结果和测试集真实值

第九个文件:LSTM_Transform

第十个文件:plt.py是读取四个不同程序对测试集预测的结果,并与测试集真实值进行对比。

第九个文件:version.py是展示环境库目前的版本

4.结果对比(选取测试集里的最后一天进行绘图展示:10/31/2018):

​编辑

对代码和数据集感兴趣的 ,可以关注最后一行:

# 导入所需的库
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import preprocessing
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
from math import sqrt
from keras.layers import *
from keras.models import *
from sklearn import preprocessing
from pandas import DataFrame


创作时间: