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_BiGRU_ATTENTION表格,装载的是CNN-BiGRU-Attention.py预测测试集的结果
第二个文件:CNN_GRU表格,装载的是CNN_GRU.py预测的测试集结果
第三文件:是CNN-BiGRU-Attention.py
第四个文件:CNN_GRU.py
第五个文件:data16表格,装载的是美国交通流量数据
第六个文件:LSTM表格,转载的是LSTM.py预测的测试集结果
第七个文件:LSTM.py
第八个文件: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
#数据集和代码的压缩包:https://mbd.pub/o/bread/mbd-ZJeZmZpp