【预测模型】 BP神经网络公路运量预测【Matlab 328期】

一、简介

BP网络(Back Propagation),是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
在人工神经网络发展历史中,很长一段时间里没有找到隐层的连接权值调整问题的有效算法。直到误差反向传播算法(BP算法)的提出,成功地解决了求解非线性连续函数的多层前馈神经网络权重调整问题。

BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。

BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
在这里插入图片描述
在这里插入图片描述
2 BP神经网络模型及其基本原理
在这里插入图片描述
3 BP_PID算法流程
在这里插入图片描述

二、源代码

%rood_yunliang.m,公路客运量运量BP网络预测,2007112021日调试
%问题:用BP网络预测公路客运量
%现有某省19782002年的客运量数据,即时间序列有N=25个历史观察值,
%采用长度n=5为一期,n0=2为滚动间隔。即用前5年的数据预测下一年的数据,
%每隔2年开始一期长度为5年的观察数据。要求预测出2003年、2004年的客运量。
%分析:20期数据样本分成两组,每组10个,分别做为训练集(1978年开始)和
%测试集(1979年开始)。设计BP网络有5个输入,1个输出。采用双隐含层,
%隐含层神经元数目采用试差法确定,经试验,12隐含层神经元数目分别为85%即BP网络设计为5-8-5-1%将表1中的输入、输出数据比例化到区间[0.20.9],并将初始权值随机化,取η=0 6,
%1978年开始的10个训练集训练网络。经1979年开始的10个测试集测试。 
%19782002年的客运量数据
%年份	客运量	
%1978 	12815	
%1979	15543	
%1980	19326	
%1981	22864	
%1982	26150	
%1983	28468	
%1984	30882	
%1985	39375	
%1986	45759	
%1987	49589	
%1988	52560	
%1989	48726	
%1990	51083	
%1991	56495	
%1992	62767	
%1993	83606	
%1994	92090	
%1995	101370	
%1996	107317	
%1997	108654	
%1998	111847	
%1999	112872	
%2000	116997	
%2001	126007	
%2002	128980	

close all
clc;
clear;
%按年份排列的原始客运量数据
p0=[12815 15543 19326  22864  26150 28468 30882 39375  45759  49589  52560  48726 ...
      51083  56495  62767  83606  92090  101370  107317  108654  111847  112872 ...
     116997  126007  128980];

 %绘制客运量随年份的变换曲线
year=1978:2002;
plot(year,p0,'b+')
hold on
plot(year,p0,'b-.')
pause

 %将原始数据归一化到[0.2  0.9]
 %规一化公式:规一化后数据=z1+(z2-z1)*(x-xmin)/(xmax-xmin)
 %[z1 z2]为规格化后的数据范围,如本例z1=0.2,z2=0.9;x为待规格化数据;
 %xmin、xmax分别为数据序列的最小、最大值。
  p1=0.2+(0.9-0.2).*(p0-min(p0))./(max(p0)-min(p0));

 %绘制规一化后客运量随年份的变换曲线
 %plot(year,p1)
%pause

%按每5年为一期组织样本,作为训练集,p为输入,t为目标。从第1978年客运量开始
j=0;
for i=1:10;
       p(:,i)=p1(i+j:i+j+4);  %取第i个训练样本,给p
       t(:,i)=p1(i+j+5);
       j=j+1;
end
p
t
pause

%按每5年为一期组织样本,作为测试集,testp为输入,testt为目标。从1979年客运量开始
j=0;
for i=1:10;
       testp(:,i)=p1(i+j+1:i+j+5);
       testt(:,i)=p1(i+j+6);
       j=j+1;
end

三、运行结果

在这里插入图片描述

四、备注

完整代码或者代写添加QQ 912100926
往期回顾>>>>>>
【预测模型】粒子群之lssvm预测模型【Matlab 005期】
【lssvm预测】鲸鱼优化算法之lssvm预测【Matlab 006期】
【SVM预测】蝙蝠算法之SVM预测模型【Matlab 007期】
【SVM预测】灰狼算法优化之SVM支持向量机预测模型【Matlab 008期】
【预测模型】基于BP神经网络的预测模型【Matlab 009期】
【lssvm预测】蝙蝠算法之改进的最小二乘支持向量机lssvm预测【Matlab 010期】
【ISTM预测】鲸鱼优化算法之改进的lSTM预测【Matlab 045期】
【SVM预测】蝙蝠算法之改进SVM预测模型【Matlab 046期】
【lSSVM预测】鲸鱼优化算法之lSSVM数据预测【Matlab 140期】
【ANN预测模型】差分算法之改进ANN网络预测【Matlab 141期】
【预测模型】RBF神经网络预测模型【Matlab 142期】
【预测模型】SVM回归预测算法之预测股票趋势【Matlab 143期】
【预测模型】BP神经网络之模型优化预测【Matlab 176期】
【预测模型】RLS算法之数据预测【Matlab 177期】
【预测模型】碳排放约束下之煤炭消费量优化预测【Matlab 178期】
【预测模型】神经网络的电力负荷预测模型【Matlab 211期】
【预测模型】SVM电力系统短期负荷预测【Matlab 212期】
【预测模型】BP神经网络的电力负荷预测模型【Matlab 213期】
【预测模型】基于BP神经网络的股票预测【Matlab 264期】
【预测模型】基于GM11一二三线城市房价的预测【Matlab 265期】
【预测模型】粒子群PSO优化BP神经网络风电功率预测【Matlab 266期】
【预测模型】最小二乘法的股票预测【Matlab 267期】
【预测模型】PSO优化CNN预测【Matlab 275期】
【预测模型】rnn循环神经网络预测【Matlab 276期】
【预测模型】bp神经网络风电功率预测【Matlab 326期】
【预测模型】小波神经网络的短时交通流量预测【Matlab 327期】

猜你喜欢

转载自blog.csdn.net/m0_54742769/article/details/114291367