python交通流预测算法_基于遗传算法优化LSTM神经网络的交通流预测方法与流程...
本发明涉及深度学习方法和交通流预测等技术领域,具体涉及一种基于遗传算法优化LSTM神经网络的交通流预测方法。
背景技术:
短时交通流的预测是交通管理部门采取交通控制和诱导措施的重要依据。通过对短时交通流的预测,可以提前调整交通管理控制手段,提高交通运行效率。为了更好反应道路交通运行状态,交通流的短期实时预测是智能交通领域研究重点。交通流数据是时间序列数据,随着机器学习及深度学习的推进,对交通流的预测方法也在不断改善。
早期交通流的预测是基于传统统计学理论。对于统计模型,Ahmed首次将时间序列模型应用于交通流预测领。Vythoulkas引入卡尔曼滤波的交通量预测,采用线性系统状态方程对整体状态进行最优估计。马尔科夫预测模型利用时间序列转移概率预测未来时间序列的状态,但不适用于长期预测。在机器学习预测方法中,Quek利用模糊神经网络建立了每个路段及整个路网的交通流预测模型,采用模拟测试数据进行验证;Jiang采用动态小波神经网络进行实际交通流预测,邵春福提出采用SVM回归模型的交通状态实时预测。于滨提出了基于时间维度、上游路段、下游路段和时空参数四种状态向量的K近邻模型,研究各参数对预测精度的影响。罗向龙提出采用深度信念网络对数据先进行特征学习提取,再采用顶层SVM模型进行预测[。黄廷辉提出了采用分布式梯度优化决策树筛选特征向量建立DUTP-GBDT模型。
当前深度学习应用在时间序列数据预测中的范围更加广泛。王祥雪通过对LSTM神经网络精细化调参实现了对城市快速路车速的实时预测。王鑫采用多网格搜索优化参数选取的LSTM模型对飞机故障事件序列进行预测。杨其采用LSTM和ARMA对惯性器件的随机误差进行了误差滤波拟合。
在交通流预测领域,最流行的方法是采用深度学习中的LSTM神经网络进行预测,但该方法需要对LSTM神经网络的参数进行调整,才能拥有较高的预测精度。目前对于深度学习预测模型参数选取研究多是采用遍历多网格搜索算法、控制变量精细调参,计算开销大。
技术实现要素:
本发明的内容就是在解决在交通流预测中,由于大范围参数调优带来的计算开销大,训练时间长、预测性能较差、耗费时间长,无法寻到LSTM神经网络最优参数组合的问题。
为实现上述目的,本发明的技术方案是:
一种基于遗传算法优化LSTM神经网络的交通流预测方法,包括如下步骤:
步骤S1、交通流数据采集,并进行数据归一化预处理,分为训练数据集和测试数据集;
步骤S2、采用遗传算法优化LSTM神经网络预测模型的各个参数;
步骤S3、输入遗传算法优化好的参数、训练数据集,进行LSTM神经网络预测模型的迭代优化;
步骤S4、利用已训练好的LSTM神经网络模型对测试数据集进行预测,并评估模型误差。
进一步地,所述步骤S1具体为:
步骤S11、采用高速公路高清卡口检测器在设定的观测点或者路段,在一定时间间隔内对交通流数据进行采集;
步骤S12、对数据进行归一化,并按照比例划分为训练数据集和测试数据集,其中,原始交通流数据DF={df1,df2,……,dfn},数据归一化方法采用离差标准化方法,公式如下:
其中,di是归一化后的交通流数据,是交通流数据中最小值,是交通流数据最大值,dfi为待归一化处理的交通流数据。
进一步地,所述的时间间隔包括5分钟、15分钟、30分钟、60分钟。
进一步地,所述的按照比例划分为训练数据集和测试数据集具体为:将归一化数据的前87.5%为训练数据集,后12.5%为测试数据集。
进一步地,所述步骤S2中,所述LSTM神经网络预测模型所需优化的参数包括:LSTM神经网络隐藏层数、时间窗步长、训练次数、遗忘率Dropout,所述遗传算法优化LSTM神经网络的模型是在参数搜索空间里,以预测误差最小为目标函数,进行参数组合寻优。
进一步地,所述步骤S2中采用遗传算法对LSTM神经网络预测模型涉及到的参数进行优化时,以预测误差最小为目标函数,获取参数搜索空间的最优解,进行参数组合寻优,形成复合GA-LSTM模型,包括步骤:
步骤S21、种群初始化并解码;
步骤S22、将LSTM神经网络的均方误差作为适应度函数;
步骤S23、将解的个体进行选择交叉变异操作;
步骤S24、若适应度函数目标值达到最优值,则进行下一步;否则返回步骤S23;
步骤S25、获得适应度函数目标值和最佳参数;
步骤S26、计算基于最佳参数的预测均方误差;
步骤S27、终止条件判断,若种群迭代次数满足,则停止计算,此时LSTM网络全局最优参数组合;否则返回步骤S26。
进一步地,所述步骤S3具体为:
S31、将处理好的测试数据X输入到复合GA-LSTM模型隐藏层中,GA-LSTM单元受前一阶段训练模型影响,输出预测数据为:P={P1,P2,……,PS},Pp=GA-LSTMcal{Xp,Cp-1,Hp-1},其中,Cp-1、Hp-1分别是前一GA-LSTM单元的状态和输出,GA-LSTMcal是LSTM神经网络的计算过程,网络训练损失函数采用均方误差,即:
其中:S为时间窗步长,m为训练数据集元素个数,pi为预测数据,yi为实际数据;
S32、复合GA-LSTM模型中采用经遗传算法选定好的参数,优化目标为损失函数最小化,采用Adam优化算法进行梯度计算,对网络迭代更新不断调整模型权重、降低预测误差。
进一步地,所述步骤S4具体包括:
采用训练好的LSTM神经网络模型对预测数据集进行交通流预测,将预测数据同实际数据进行误差计算,所述误差计算采用均方误差和均方根误差两项指标还原预测数据进行输出,在预测中,均方误差和均方根误差的值越小,代表预测精度越高,其中,
均方误差:
均方根误差:
式中,N是数据集个数,Yi是真实数据集,Yi*是预测数据集。
与现有技术相比,本发明的有益效果在于:
1、采用遗传算法优化LSTM神经网络模型参数组合,该方法可以在参数空间快速找到最优参数组合;
2、采用遗传算法和LSTM神经网络模型预测交通流,模型具有长期数据记忆的优势,提高预测精准度;
3、遗传算法和LSTM神经网络模型对不同时间间隔的数据样本具有良好的适用性。
4、模型计算量少,表现出更好的预测性能。
附图说明
图1是本发明实施例的步骤流程图。
图2是遗传算法迭代优化目标函数图。
图3是遗传算法目标函数最优值示意图。
图4是四种模型5分钟的预测结果。
图5是四种模型15分钟的预测结果。
图6是四种模型60分钟的预测结果。
图7是四种模型60分钟的预测结果。
图8是四种模型均方误差示意图。
图9是四种模型均方根误差示意图。
具体实施方式
下面结合实例对本发明做进一步的说明,所描述的实施例旨在便于对本发明的理解,而对其不起任何限定作用。
一种基于遗传算法优化LSTM神经网络的交通流预测方法,主要流程如图1所示,包括如下步骤:
步骤S1:交通流数据采集,并进行数据归一化预处理,分为训练数据集和测试数据集。
所述交通流数据来源于高速公路高清卡口检测器,在特定的观测点或者路段,在一定时间间隔内通过的车辆数,时间间隔可以根据实际预测需求制定,本发明采用的是5分钟、15分钟、30分钟、60分钟四个时间间隔样本数据。
读取获得原始交通流数据DF={df1,df2,……,dfn},采用离差标准化方法对数据归一化:
其中,di是归一化后的交通流数据,是交通流数据中最小值,是交通流数据最大值,dfi为待归一化处理的交通流数据。
获得新数据序列D={d1,d2,……,dn},按比例划分训练数据集和测试数据集分别为dtr={d1,d2,……,dm}和dte={dm+1,dm+2,……,dm},其中,将归一化数据的前87.5%为训练数据集,后12.5%为测试数据集。对数据进行时间窗步长处理,设定时间窗步长设定为S,则处理后数据输入为:X={X1,X2,……,XS}。实际对比数据为:Y={Y1,Y2,……,YS}。
步骤S2:采用遗传算法优化LSTM神经网络预测模型的各个参数。
所述步骤S2中,所述LSTM神经网络预测模型所需优化的参数包括:LSTM神经网络隐藏层数、时间窗步长、训练次数、遗忘率Dropout,所述遗传算法优化LSTM神经网络的模型是在参数搜索空间里,以预测误差最小为目标函数,进行参数组合寻优。
所述步骤S2中采用遗传算法对LSTM神经网络预测模型涉及到的参数进行优化时,以预测误差最小为目标函数,获取参数搜索空间的最优解,进行参数组合寻优,形成复合GA-LSTM模型,包括步骤:
步骤S21、种群初始化并解码;
步骤S22、将LSTM神经网络的均方误差作为适应度函数;
步骤S23、将解的个体进行选择交叉变异操作;
步骤S24、若适应度函数目标值达到最优值,则进行下一步;否则返回步骤S23;
步骤S25、获得适应度函数目标值和最佳参数;
步骤S26、计算基于最佳参数的预测均方误差;
步骤S27、终止条件判断,若种群迭代次数满足,则停止计算,此时LSTM网络全局最优参数组合;否则返回步骤S26。
步骤S3:输入遗传算法优化好的参数、训练数据集,进行LSTM神经网络预测模型的迭代优化,具体包括:
S31、将处理好的测试数据X输入到复合GA-LSTM模型隐藏层中,复合GA-LSTM单元受前一阶段训练模型影响,输出预测数据为:P={P1,P2,……,PS},Pp=GA-LSTMcal{Xp,Cp-1,Hp-1},其中,Cp-1、Hp-1分别是前一GA-LSTM单元的状态和输出,GA-LSTMcal是LSTM神经网络的计算过程,网络训练损失函数采用均方误差,即:
其中:S为时间窗步长,m为训练数据集元素个数,pi为预测数据,yi为实际数据;
S32、复合GA-LSTM模型中采用经遗传算法选定好的参数,优化目标为损失函数最小化,采用Adam优化算法进行梯度计算,对网络迭代更新不断调整模型权重、降低预测误差。
步骤S4:利用已训练好的LSTM神经网络模型对测试数据集进行预测,并评估模型误差,具体包括:
采用训练好的LSTM神经网络模型对预测数据集进行交通流预测,将预测数据同实际数据进行误差计算,还原预测数据进行输出。采用均方误差(MSE)和均方根误差(RMSE)作为评估指标,在预测中,MSE和RMSE的值越小,代表预测精度越高。其中,
均方误差:
均方根误差:
式中,N是数据集个数,Yi是真实数据集,Yi*是预测数据集。
本发明的有效性可以通过下面的实验来进一步说明,实验中的参数不影响本发明的一般应用性。
实验平台:处理器为Intel i5-6500,内存为8.0GB;系统是Windows10(64位);程序语言版本为Python3.6.2;集成开发环境为Anaconda包中的spyder3.28版本。
实验内容:
广州某段高速公路8天的车道高清卡口检测器的交通流数据作为时间序列预测样本。高速公路作为封闭式通行系统,交通流信息真实性高。高速公路管理部门在对车辆进行进行控制和诱导时,需要提前预估短时间交通流数据,数据采集间隔分别为5分钟,15分钟,30分钟,60分钟四种,能够有效保证管理部门数据预测需求。采用离差标准化方法进行归一化,实验以前7天数据为训练样本,后1天数据为测试样本。
采用遗传算法优化LSTM模型参数取值,设置种群中个体为50,迭代次数为100,变异概率pm为0.1,交叉概率pc为0.6,以60分钟交通流数据为样本进行分析。
参数搜索空间:隐藏层数,10-160,步长为10;时间窗步长,1-16,步长为1;训练次数,10-320,步长为10;遗忘率,0.2-0.51,步长为0.01。编码:根据参数性质,采用二进制编码,个体中含有18个基因。[0101,0101,01010,01010]表示为某个体,则四段染色体分别表示为参数隐藏层数、时间窗步长、训练次数、遗忘率的基因型。
图2表示遗传算法寻优迭代图,图3表示最优值迭代示意图。在遗传算法中,可以在搜索空间快速找到近似最优解。随着迭代步数增加,其最优解的均方误差在减少,实现搜索空间参数组合的最优解。经过遗传算法的寻优,确定LSTM神经网络的参数组合为:时间窗步长为13,隐藏层数为100,训练次数为200,遗忘率为0.37。
实验选取了在交通流预测中经典预测模型作为对照:支持向量机算法(SVM)、最近邻算法(KNN)、BP神经网络,同本发明的算法(GA-LSTM)进行预测性能对比。图4是四种模型5分钟的预测结果,图5是四种模型15分钟的预测结果,图6是四种模型60分钟的预测结果,图7是四种模型60分钟的预测结果。图8是四种模型均方误差示意图,图9是四种模型均方根误差示意图。
表1为现有算法交通流预测性能对比
上述分析说明,本发明提出的一种基于遗传算法优化LSTM神经网络的交通流预测方法,能够获得比现有方法更低的预测误差,改进了交通流预测精度。本发明所提出的方法,在四个不同时间间隔数据中误差均最低,证明了方法具有良好的适用性。具有一定的参考价值和实际经济效益。实验表明,本发明的方法寻优速度快,同传统预测算法中的SVM、KNN和朴素BP神经网络相比较,GA-LSTM对数据预测均方误差和均方根误差最小,模型减少了计算量,表现出更好的预测性能。
以上是本发明的实施例,但本发明并不局限于上述特定实施方式,凡依本发明技术方案作出的改变,所产生的功能作用未超出本方法技术方案的范围时,其同样应当视作本发明所公开的内容。
python交通流预测算法_基于遗传算法优化LSTM神经网络的交通流预测方法与流程...相关推荐
- BP神经网络优化 | MATLAB基于遗传算法优化BP神经网络(GA-BP)的预测模型(含完整代码)
文章目录 前言 一.遗传算法描述 二.优化思路 三.完整代码 预测结果 前言 首先需要安装一下遗传算法工具箱,可参考这篇博客 MATLAB遗传算法工具箱安装包及安装方法(图解)_周杰伦今天喝奶茶了吗的 ...
- 基于布谷鸟优化LSTM的短时电力负荷预测
0 引言 短期电力负荷预测是电力系统安全调度.经济运行的重要依据 , 随着电力系统的市场化 , 负荷预测的精度直接影响到电力系统运行的可靠性.经济性和供电质量.LSTM 为短期电力负荷预测提供了一个新 ...
- 空间注意力机制sam_一种基于注意力机制的神经网络的人体动作识别方法与流程...
本发明属于计算机视觉领域,具体来说是一种基于注意力机制的神经网络的人体动作识别的方法. 背景技术: 人体动作识别,具有着非常广阔的应用前景,如人机交互,视频监控.视频理解等方面.按目前的主流方法,可主 ...
- python交通流预测算法_基于机器学习的交通流预测技术的研究与应用
摘要: 随着城市化进程的加快,交通系统的智能化迫在眉睫.作为智能交通系统的重要组成部分,短时交通流预测也得到了迅速的发展,而如何提升短时交通流预测的精度,保障智能交通系统的高效运行,一直是学者们研究的 ...
- python 排课算法_基于遗传算法的排课系统
摘 要:随着高校的发展,在教务管理系统中使用的排课模型也变得越来越复杂,亟需一种适用于开发.重用及设计的方法.针对这种情况,本文给出了排课问题的数学模型,提出基于遗传算法解决方案.结果表明,该算法能比 ...
- python自动组卷系统_基于遗传算法(C#编写)的智能组卷系统优化
原创 guodongwe1991 机器学习算法与Python学习 2016-08-25 最近由于项目的需要,基于.Net 4.0框架和WPF开发window的客户端(开发环境为win7 旗舰版:Vis ...
- #时间预测算法_基于超级学习者机器学习算法预测ICU患者急性低血压发作
点击"蓝字"关注,更多精彩内容! 背景 急性低血压发作(AHE),定义为平均动脉压下降至<65mmHg且至少持续5分钟,是重症监护病房(ICU)最严重的不良事件,往往导致重症 ...
- python汉诺塔算法_基于Python的汉诺塔求解中途算法
能不能把河内塔半路解决?我做了大量的研究来寻找能够解决用户配置问题的代码,但是我还没有找到一个.这是一个任务,我需要代码接管从用户已经停止求解的地方,并继续为用户解决它,而不重置为方块一.在 我知道有 ...
- gadecod matlab,【预测模型】基于遗传算法优化BP神经网络房价预测matlab源码
一.简介 1 遗传算法概述 遗传算法(Genetic Algorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法 ...
- python中forward的作用_基于numpy的前馈神经网络(feedforward neural network)
*** 这几天在上Andrew Ng教授开的Coursera系列课程Deep Learning,总觉得光是看视频和做作业还不够,还是得自己动手写写代码,亲自实现课程里提到的算法内容,于是便有了这篇博客 ...
最新文章
- 从Visual Studio里抓取抽象语法树(AST)
- ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})
- EXCEL_CLASS
- 苹果的工作官方检索地址
- Change Unidirectional Association to Bidirectional(将单向关联改为双向关联)
- 修改Launcher2欢迎页面字符重叠
- cmake使用教程(四)调用外部共享库和头文件
- 走近汇编理解与内核编程
- Word serach(Medium)
- Android 版本号及对应的版本名称
- http 503 service
- Intel MIC (至强融核) 安装步骤
- markdown 做图 : Mermaid语法
- 人工智能-深度学习-yolov3口罩佩戴识别
- 人类小脑的功能连接组学
- html 文档结构图,怎么在文档结构图中显示目录,怎样显示文档结构图
- 黑客帝国代码雨JS,支持中文
- win10解压安装mysql方法及遇见的问题(缺少MSVCR120.dll文件、服务无法启动)
- wap(dopra linux )命令,ftth-华为hg8245终端回收利用配置方法
- Camfrog Video Chat免费版
热门文章
- window系统怎么解压tar.bz2文件
- 乐优商城项目实战系列笔记1-项目搭建
- 【日常】《中国统计年鉴》与《中国金融年鉴》数据表爬虫(附1985-2020所有Excel资源)
- 模拟CMOS集成电路设计中的gm/id设计方法及用Cadence Virtuoso IC617仿真有关参数曲线
- 哪些应用场景在使用语音连麦
- 解决Linux环境下idea、webstorm等编辑器中文无效
- 计算机主机前耳机没声音,win7系统电脑前面耳机没声音怎么办
- 原理图端口符号_电气的原理图和接线图的区别,今天终于弄明白了!
- 使用c语言的多学科协同仿真软件,Multisim10软件在单片机C语言协同仿真中应用.pdf...
- Skyline软件二次开发初级——10如何在WEB页面中的三维地图上控制图层对象