用Matlab编程BP神经网络进行预测

2024-05-18 09:28

1. 用Matlab编程BP神经网络进行预测

原理就是:建立网络-数据归一化-训练-预测-数据反归一化。附件是电力负荷预测的例子,可以参考。

BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。

用Matlab编程BP神经网络进行预测

2. 求预测一组数据的bp神经网络模型的matlab代码

用matlab求预测一组数据的bp神经网络模型,可以分1、给定已经数据,作为一个原始序列;2、设定自回归阶数,一般2~3,太高不一定好;3、设定预测某一时间段4、设定预测步数5、用BP自定义函数进行预测6、根据预测值,用plot函数绘制预测数据走势图其主要实现代码如下:clc% x为原始序列(行向量)x=[208.72 205.69 231.5 242.78 235.64 218.41];%x=[101.4 101.4 101.9 102.4 101.9 102.9];%x=[140 137 112 125 213 437.43];t=1:length(x);% 自回归阶数lag=3; %预测某一时间段t1=t(end)+1:t(end)+5;%预测步数为fnfn=length(t1);     [f_out,iinput]=BP(x,lag,fn);P=vpa(f_out,5);A=[t1' P'];disp('预测值')disp(A)% 画出预测图figure(1),plot(t,iinput,'bo-'),hold onplot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid ontitle('BP神经网络预测某地铁线路客流量')xlabel('月号'),ylabel('客流量(百万)');运行结果:

3. 求用matlab通过BP神经网络做预测的源程序

load data3_1.txt;
[m,n]=size( data3_1); 
tsx = data3_1(1:m-1,1);
tsx=tsx';
ts = data3_1(2:m,1);
ts=ts';
[TSX,TSXps]=mapminmax(tsx,1,2);
[TS,TSps]=mapminmax(ts,1,2);
TSX=TSX';


figure;
plot(ts,'LineWidth',2);
title('到杭旅游总人数(1999.01.01-2009.12.31)','FontSize',12);
xlabel('统计年份(1990.12.19-2009.08.19)','FontSize',12);
ylabel('归一化后的总游客数/万人','FontSize',12);
grid on;

% 生成BP网络、利用minmax函数求输入样本范围
net_1=newff(minmax(TS),[10,1],{'tansig','purelin'},'traincgf')
% 设置训练参数
net_1.trainParam.show = 50;  %显示训练迭代过程(NaN表示不显示,缺省25)
net_1.trainParam.lr = 0.025;     %学习率(缺省0.01)
net_1.trainParam.mc = 0.9;   %动量因子(缺省0.9)
net_1.trainParam.epochs = 10000; %最大训练次数
net_1.trainParam.goal = 0.001;   %训练要求精度


inputWeights=net_1.IW{1,1}  %输入层权值
inputbias=net_1.b{1}         %输入层阈值 
layerWeights=net_1.LW{2,1}  %输出层权值
layerbias=net_1.b{2}         %输出层阈值

TS',TSX
% 网络训练 
[net_1,tr]=train(net_1,TS,TSX);

求用matlab通过BP神经网络做预测的源程序

4. 怎样用Matlab的BP神经网络预测后五年的工资

由于你没有给出几年来工资数,无法为你预测后五年的工资。现给你一个例子,希望对你有点启发。已知2009年至2014年的某地区人口总数3583,4150,5062,4628,5270,5340;现要预测2015年和2016年的人口总数。
% 清空环境变量
clear all;close all;clc
t=2009:2014;
% x为原始序列(行向量)
x=[3583 4150 5062 4628 5270 5340];
% 自回归阶数
lag=2; 
%预测年份或某一时间段
t1=2015:2016;
%预测步数为fn
fn=length(t1);     
[f_out,iinput]=BP(x,lag,fn);   %BP神经网络函数
n1=length(t1);
P=vpa(f_out,5);
[t1' P']
% 画出预测图
figure,plot(2009:2014,iinput,'b'),hold on
plot(2014:2016,[iinput(end),f_out],'r'),grid on
title('BP神经网络预测某地区人口数')

如有问题,可以私聊或通过其他方式讨论。

5. bp神经网络预测matlab源代码

P=[1;2;3;4;5];%月
P=[P/50];
T=[2;3;4;5;6];%月训练样本
T=[T/50];
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1];
net=newff(threshold,[15,7],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=2000;
net.trainParam.goal=0.001;
LP.lr=0.1;
net=train(net,P,T);
P_test=[6月]';%6月数据预测7月
P_test=[P_test/50];
y=sim(net,P_test)
y=[y*50]

bp神经网络预测matlab源代码

6. 求一个bp神经网络预测模型的MATLAB程序

BP神经网络预测的步骤:
1、输入和输出数据。
2、创建网络。fitnet()
3、划分训练,测试和验证数据的比例。net.divideParam.trainRatio; net.divideParam.valRatio;net.divideParam.testRatio
4、训练网络。 train()
5、根据图表判断拟合好坏。ploterrcorr();parcorr();plotresponse()
6、预测往后数据。net()
7、画出预测图。plot()
执行下列命令
BP_prediction
得到结果:
[ 2016, 14749.003045557066798210144042969]
[ 2017, 15092.847215188667178153991699219]
[ 2018, 15382.150005970150232315063476562]
[ 2019,  15398.85769711434841156005859375]
[ 2020, 15491.935150090605020523071289062]

7. 用matlab软件预测一组数据未来走势,用到了BP神经网络法,请问如何在matlab里输入程序代码?多谢各位。

如果程序语句较少,可在命令窗中提示符后直接输入,回车就显示结果。如果程序语句较多,可写成m文件,保存后,运行,就会在命令窗中显示结果。你要预测趋势,应属于后一种。

用matlab软件预测一组数据未来走势,用到了BP神经网络法,请问如何在matlab里输入程序代码?多谢各位。

8. 通过matlab软件做bp神经网络预测奶制品价格,求大神帮忙

主要是样本组织,把输入和输出样本都确定。可以用前12个月的数据预测下一个月的数据,即第n个数据至n+11共12个数据作为输入,n+12作为输出组织样本。
以附件的程序作参考,将P、T换为你的样本即可。

BP(Back Propagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。