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

2024-05-24

1. 求一个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]

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

2. 在线等matlab的BP神经网络预测问题?

关于神经网络(matlab)归一化的整理
由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james)
1、线性函数转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。
2、对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
3、反余切函数转换,表达式如下:
y=atan(x)*2/PI
归一化是为了加快训练网络的收敛性,可以不进行归一化处理
归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;
当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。
归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用[1 0 0]要好。
但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
关于用premnmx语句进行归一化:
premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)
其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。
premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。
我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。
下面介绍tramnmx函数:
[Pn]=tramnmx(P,minp,maxp)
其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
(by terry2008)
matlab中的归一化处理有三种方法
1. premnmx、postmnmx、tramnmx
2. restd、poststd、trastd
3. 自己编程
具体用那种方法就和你的具体问题有关了
(by happy)
pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;
和
for i=1:27
p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end 可以归一到0 1 之间
0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。
这个可以归一到0.1-0.9

3. 如何建立bp神经网络预测 模型

建立BP神经网络预测 模型,可按下列步骤进行:
1、提供原始数据
2、训练数据预测数据提取及归一化
3、BP网络训练
4、BP网络预测
5、结果分析
现用一个实际的例子,来预测2015年和2016年某地区的人口数。
已知2009年——2014年某地区人口数分别为3583、4150、5062、4628、5270、5340万人
执行BP_main程序,得到
[ 2015,  5128.631704710423946380615234375]
[ 2016, 5100.5797325642779469490051269531]
代码及图形如下。

如何建立bp神经网络预测 模型

4. matlab BP神经网络

从原理上来说,神经网络是可以预测未来的点的。
实际上,经过训练之后,神经网络就拟合了输入和输出数据之间的函数关系。只要训练的足够好,那么这个拟合的关系就会足够准确,从而能够预测在其他的输入情况下,会有什么样的输出。
如果要预测t=[6 7]两点的R值,先以t=[1 2 3 4 5]作为输入,R=[12 13 14 14 15]作为输出,训练网络。训练完成之后,用t=[2 3 4 5 6]作为输入,这样会得到一个输出。不出意外的话,输出的数组应该是[13 14 14 15 X],这里的X就是预测t=6时的R值。然后以t=[3 4 5 6 7]作为输入,同理得到t=7时候的R值。
根据我的神经网络预测,t=6时,R=15,t=7时,R=15。我不知道这个结果是否正确,因为神经网络通常需要大量的数据来训练,而这里给的数据似乎太少,可能不足以拟合出正确的函数。

5. bp神经网络预测一组数据

关键在于输入向量的制定:可选择前3年的数据作为输入,输入节点设为3;第4年的数据为输出,输出节点数设为1;隐层节点数设为4左右。这样便形成了样本,用这些样本去训练bp神经网络,将训练好的网络用于预测。
最后是以06、07、08的数据作为输入,去预测09的数据。再滚动迭代下去,直至将2012的数据预测出来。

附件是一个电力负荷的预测实例,按照我上面所说,稍微修改一下样本和节点数即可应用。

bp神经网络预测一组数据

6. matlab怎么利用神经网络做预测

利用matlab做神经网络预测,可按下列步骤进行:
1、提供原始数据
2、训练数据预测数据提取及归一化
3、BP网络训练
4、BP网络预测
5、结果分析



7. bp神经网络预测代码

在matlab中,样本是以列的方式排列的,即一列对应一个样本。如果你的样本无误的话,就是一个输入8输出2的神经网络。作图直接用plot函数。
参考附件的代码,这是一个电力负荷预测例子,也是matlab编程。

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

bp神经网络预测代码

8. 用MATLAB建立bp神经网络模型,求高手,在线等

Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全。下面仅以一个例子列举部分函数的部分用法。更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档。

例子:利用bp神经网络模型建立z=sin(x+y)的模型并检验效果

%第1步。随机生成200个采样点用于训练
x=unifrnd(-5,5,1,200);
y=unifrnd(-5,5,1,200);
z=sin(x+y);
%第2步。建立神经网络模型。其中参数一是输入数据的范围,参数二是各层神经元数量,参数三是各层传递函数类型。
N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'});
%第3步。训练。这里用批训练函数train。也可用adapt函数进行增长训练。
N=train(N,[x;y],z);
%第4步。检验训练成果。
[X,Y]=meshgrid(linspace(-5,5));
Z=sim(N,[X(:),Y(:)]');
figure
mesh(X,Y,reshape(Z,100,100));
hold on;
plot3(x,y,z,'.')
最新文章
热门文章
推荐阅读