课题名称:基于Elman神经网络的短时交通流量预测
版本时间:2023-04-27
代码获取方式:QQ:491052175 或者 私聊博主获取
模型简介:
城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关,并且交通流量具有24小时内准周期的特性。首先采集4 天的交通流量数据,每隔15 分钟记录一次该段时间内的交通流量,一共记录384个时间点的数据。用3天共288 个交通流量的数据训练小波神经网络,最后用训练好的小波神经网络预测第4 天的交通流量。仿真拟采用前4个时间节点的交通流量预测。第5个时间节点;即可以理解为第1-4节点预测第5个节点,第2-5节点预测第6个节点,依次类推构建训练数据和测试数据。一天96个时间节点,按照上述逻辑可以组合92组数据;那么3天288个时间节点可以组合276组5维数据(这里需要注意的是,只能当天数据组合模型数据,故3天可以得到92*3=276组数据)。测试数据为第4天的96个节点,可以组合92组5维测试数据。BP神经网络的构建确定BP神经网络结构。本案例采用的BP神经网络的输入层有4个节点,表示预测时间节点前4个时间点的交通流量;隐含层有通过遍历求误差最小的隐含层节点;输出层有1节点,为网络预测的交通流量。
关于数据:
为什么288个交通流量数据,最后训练数据input=276*4;output=276*1 ?因为一天总共96组时间节点的交通流量;因为前4个节点预测第5个节点,故第1、2、3、4作为第一组训练输入,第5天作为第一组输出;第2、3、4、5作为第二组训练输入,第6天作为第二组输出....,最后,第92、93、94、95作为第92组输入,第96个节点作为第92组输出。所以一天96个节点最后只能有92组4维输入和1为输出。所以测试数据input_test和output_test是92*4和92*1。
Elman神经网络调用格式:
net=newelm(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF,IPF,OPF)
PR: R 组输入元素的最小值和最大值的设定值,R*2维的矩阵
T:SN*Q2 的具有SN 个元素的输出矩阵
Si:第i 层的长度;TFi 为第i层的传递函数,默认值:隐藏层为tansig,输出层为purelin
BTF: 反向传播神经网络训练函数,默认值:trainlm
BLF: 反向传播神经网络权值/阔值学习函数,默认值:learngdm
PF: PF为性能函数,默认值为mse
IPF: 输入处理函数,默认值: fixunknowns/ removeconstantrows/ mapminmax
OPF: 输出处理函数,默认值:removeconstantrows,mapminmax
改进方向:
无
待改进方向:
1.研究隐含层层数及其他网络参数对于神经网络的影响,采用自适应的方法选取最优参数带入到仿真中。
2.利用智能算法去优化Elman神经网络的权值和阈值,比如GA算法,PSO算法,SA算法,GASA算法等等
特殊说明:
神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值。
Matlab仿真结果:
基于Elman神经网络短时交通流量预测的预测输出
基于Elman神经网络短时交通流量预测的预测误差
基于Elman神经网络短时交通流量预测的预测误差百分比
#由于前20个样本的数据过小,导致误差百分比被拉高