ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【BP预测】 基于BP神经网络公路运量预测matlab 源码

2021-05-06 02:06:01  阅读:136  来源: 互联网

标签:p0 p1 1978 客运量 源码 BP matlab 数据


摘要
在目前的股票投资市场,不少自然人股民的投资主要方式使根据对当天或者一个较长周期对股票数据的预测,来得到下一天的股票数据,从而进行相应的投资。为了满足股民希望能更为理性合理准确的预测股票走向,需要借助机器的帮助。本文主要是利用优化过的遗传算法,利用遗传算法调整BP三层神经网络的权重与阈值,使BP神经网络的训练效果得到提升,从而对股票市场的行情有比较好的预测效果。

遗传算法

遗传算法的过程:


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

%rood_yunliang.m,公路客运量运量BP网络预测,2007年11月20-21日调试
%问题:用BP网络预测公路客运量
%现有某省1978~2002年的客运量数据,即时间序列有N=25个历史观察值,
%采用长度n=5为一期,n0=2为滚动间隔。即用前5年的数据预测下一年的数据,
%每隔2年开始一期长度为5年的观察数据。要求预测出2003年、2004年的客运量。
%分析:20期数据样本分成两组,每组10个,分别做为训练集(1978年开始)和
%测试集(1979年开始)。设计BP网络有5个输入,1个输出。采用双隐含层,
%隐含层神经元数目采用试差法确定,经试验,第1、2隐含层神经元数目分别为8、5,
%即BP网络设计为5-8-5-1。
%将表1中的输入、输出数据比例化到区间[0.2~0.9]内,并将初始权值随机化,取η=0 6,
%用1978年开始的10个训练集训练网络。经1979年开始的10个测试集测试。 
%1978~2002年的客运量数据
%年份	客运量	
%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

三、运行结果

在这里插入图片描述

四、备注

完整代码添加QQ1575304183

标签:p0,p1,1978,客运量,源码,BP,matlab,数据
来源: https://www.cnblogs.com/ttmatlab/p/14733576.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有