研究课题:
基于GA优化BP神经网络的短时交通流量预测
关键词:
交通流量;遗传算法GA; BP神经网络; Matlab
改进方向:
最佳隐含层节点 + 遗传算法优化初始权值和阈值
课题说明:
城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关,并且交通流量具有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维测试数据。
关于数据:为什么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。
算法流程:
BP神经网络调用格式:
net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
- P:输入数据矩阵; T:输出数据矩阵; S:隐含层节点数
- TF:节点传递函数; BTF:训练函数; BLF:网络学习函数
- PF:性能分析函数; IPF:输入处理函数; OPF:输出处理函数; DDF:验证数据划分函数
不同的数值优化方式采用不同的训练函数
- Fletcher – Reeves 共轭梯度法: traincgf
- Polak – Ribiere 共轭梯度法: traincgp
- Powell-Beale 共轭梯度法: traincgb
- 量化共轭梯度法: trainscg
- 拟牛顿算法: trainbfg
- 一步正割的BP训练法: trainoss
- Levenberg – Marquardt 训练方法: trainlm
只需要替换newff函数后面的变量来测试不同的数值优化方法对于BP神经网络的影响
待改进方向:
- GA算法进一步优化,比如动态GA、GASA算法等等
特殊说明:
- 神经网络每一次的预测结果都不相同,为了得到更好的结果,建议多次运行取最佳值
Matlab仿真结果:








网硕互联帮助中心






评论前必须登录!
注册