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交通流预测算法)