资源简介
bp神经网络进行交通预测的Matlab源代码
BP 神经网络用于预测
使用平台 - Matlab7.0
数据为1986年到2000年的交通量 ,网络为3输入,1输出
15组数据,其中9组为正常训练数据,3组为变量数据,3组为测试数据

代码片段和文件信息
clc
clear
All_error=[];%所有误差存储
%---------------------------------------------------
%原始数据
%---------------------------------------------------
year=1986:2000;%数据是从1986到2000年的
p=[493 372 445;372 445 176;445 176 235;176 235 378;235 378 429;...
378 429 561;429 561 651;561 651 467;651 467 527;467 527 668;...
527 668 841; 668 841 526;841 526 480;526 480 567;480 567 685]‘;%输入数据,共15组,每组3个输入
t=[176 235 378 429 561 651 467 527 668 841 526 480 567 685 507];%输出数据,共15组,每组1个输出
%---------------------------------------------------
%数据归一化处理
%mapminmax函数默认将数据归一化到[-11],调用形式如下
%[yps] =%mapminmax(xyminymax)
%x需归化的数据输入
%ymin,ymax为需归化到的范围,不填默认为归化到[-11]
%y归一化后的样本数据
%ps处理设置,ps主要在结果反归一化中需要调用,或者使用同样的settings归一化另外一组数据
%---------------------------------------------------
[normInputps] = mapminmax(p);
[normTargetts] = mapminmax(t);
%---------------------------------------------------
%数据乱序,及分类处理
%将输入的15组数据的20%,即3组,用来作为测试数据;
% 样本的20%,即3组,用来作为变化数据;
%另外9组用来正常输入,用来训练;
%dividevec()用来重新随机抽取上述三种分类的数据,原来的顺序被打乱
%函数调用的语法
%[trainVvalVtestV] = dividevec(ptvalPercenttestPercent)
%输入p为输入数据,t为输出数据
%valPercent为训练用的变化数据在总输入中的百分比
%testPercent为训练用的测试数据在总输入中的百分比
%输出trainVvalVtestV分别为按乱序及相应百分比,抽取得到的数据
%另外,打乱后的数据,p和t都是对应的,请放心使用
%---------------------------------------------------
testPercent = 0.20; % Adjust as desired
validatePercent = 0.20; % Adust as desired
[trainSamplesvalidateSamplestestSamples] = dividevec(normInputnormTargetvalidatePercenttestPercent);
for j=1:20
%---------------------------------------------------
% 设置网络参数
%---------------------------------------------------
NodeNum1 = 20; % 隐层第一层节点数
NodeNum2=40; % 隐层第二层节点数
TypeNum = 1; % 输出维数
TF1 = ‘tansig‘;TF2 = ‘tansig‘; TF3 = ‘tansig‘;%各层传输函数,TF3为输出层传输函数
%如果训练结果不理想,可以尝试更改传输函数,以下这些是各类传输函数
%TF1 = ‘tansig‘;TF2 = ‘logsig‘;
%TF1 = ‘logsig‘;TF2 = ‘purelin‘;
%TF1 = ‘tansig‘;TF2 = ‘tansig‘;
%TF1 = ‘logsig‘;TF2 = ‘logsig‘;
%TF1 = ‘purelin‘;TF2 = ‘purelin‘;
net=newff(normInputnormTarget[NodeNum1NodeNum2TypeNum]{TF1 TF2 TF3}‘traingdx‘);%网络创建
%---------------------------------------------------
% 设置训练参数
%---------------------------------------------------
net.trainParam.epochs=10000;%训练次数设置
net.trainParam.goal=1e-6;%训练目标设置
net.trainParam.lr=0.01;%学习率设置应设置为较少值,太大虽然会在开始加快收敛速度,但临近最佳点时,会产生动荡,而致使无法收敛
%---------------------------------------------------
% 指定训练参数
%---------------------------------------------------
% net.trainFcn = ‘traingd‘; % 梯度下降算法
% net.trainFcn = ‘traingdm‘; % 动量梯度下降算法
%
% net.trainFcn = ‘traingda‘; % 变学习率梯度下降算法
% net.trainFcn = ‘traingdx‘; % 变学习率动量梯度下降算法
%
% (大型网络的首选算法)
% net.trainFcn = ‘trainrp‘; % RPROP(弹性BP)算法内存需求最小
%
% (共轭梯度算法)
% net.trainFcn = ‘traincgf‘; % Fletcher-Reeves修正算法
% net.trainFcn = ‘traincgp‘; % Polak-Ribiere修正算法内存需求比Fletcher-Reeves修正算法略大
% net.trainFcn = ‘traincgb‘; % Powell-Beal复位算法内存需求比Polak-Ribiere修正算法略大
%
% (大型网络的首选算法)
%net.trainFcn = ‘trainscg‘; % Scaled Conjug
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6394 2010-09-30 10:27 BP_TrafficFlow\BP_TrafficFlow.m
目录 0 2018-01-17 19:38 BP_TrafficFlow
----------- --------- ---------- ----- ----
6394 2
- 上一篇:遗传算法完整MATLAB程序覆盖法
- 下一篇:matlab求解非线性方程组
相关资源
- 基于BP神经网络对几种字体0-9的数字识
- 基于BP神经网络的盲均衡算法 C程序(
- 基于BP神经网络的语音情感识别系统
- BP神经网络解决手写数字识别问题 m
- BP神经网络实现手写数字识别matlab实现
- 应用BP神经网络逼近非线性函数
- 基于BP神经网络的无线传感器定位算法
- BP神经网络在隧道基坑工程中的实际运
- 利用BP神经网络实现手写体数字识别
- 利用BP神经网络对图像提取的MATLAB代码
- 基于MATLAB的BP神经网络应用绝对好资源
- 基于Matlab的遥感影像BP神经网络分类算
- matlab基于BP神经网络的人脸识别
- 基于BP神经网络的水上交通事故预测及
- zw_qq_15023225-7501331-S函数的BP神经网络
- BP神经网络MATLAB.zip
- 基于BP神经网络的人脸识别源码matla
- BP神经网络用于蚊子分类
- BP神经网络的人脸识别matlab代码
- BP神经网络人脸识别MATLAB.zip
- 基于BP神经网络的手写数字识别matla
- 基于BP神经网络的人脸识别代码
- bp神经网络 matlab代码 识别0到10的数字
- 基于BP神经网络的人脸识别系统_安大
- 基于MATLAB的BP神经网络的人脸朝向识别
- 基于S函数的BP神经网络PID控制器及S
- 基于bp神经网络字符识别系统 matlab代
- 光伏太阳能功率预测基于BP神经网络
- BP神经网络 手写体
- 基于BP神经网络的验证码识别matlab
评论
共有 条评论