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

作者&投稿:訾壮 (若有异议请与网页底部的电邮联系)
MATLAB神经网络预测的问题~

%神经网络算法
%这是我以前数模校内选拔赛的猪肉价格预测模型的算法,你参考下
clear;clc;
%P=0:0.1:2*pi;T=sin(P);pnew=0:0.01:2*pi;
P=1985:2009;
T=[33139.6,...
33719.1,32773,34221.8,35281,36240.8,36964.6,38421,39300,41461.9,...
44169.2,36283.6,40034.8,42256.3,43144.2,41633.6,41950.5,41776.2,...
41381.8,42123.4,43319.1,41850.4,43989.5,46264,48204.8];
[pn,minp,maxp,tn,mint,maxt]=premnmx(P,T);%
net = newff(minmax(pn),[5 6 1],{'tansig' ,'logsig', 'purelin'},'trainlm');
%net=init(net);
net.trainParam.show=50;%显示训练结果的间隔步数
net.trainParam.epochs=10000; %最大训练步数
net.trainParam.goal=0.01; %训练目标误差
net.trainParam.lr=0.05;
[net,tr]=train(net,pn,tn);
pnew=1985:2010;
pnewn=tramnmx(pnew,minp,maxp);
anewn=sim(net,pnewn);
tnew=postmnmx(anewn,mint,maxt)
%tnew=sim(net,pnew);
plot(P,T,'*',pnew,tnew,'r');
%P=0:2*pi;T=sin(P);pnew=0:0.1:2*pi;
%
%
是否可以解决您的问题?

-请问此处如何处理,能够达到让pn等于所有的已知样本来作为预测样本输入????

不知道问题出在哪里,为什么不能得到我想要的下一组数据呢?矛盾啊

http://wenku.baidu.com/link?url=5sPeHwbbotF80NS4oh94zeMshhP68JhbRIqTcBeeAfJ9ZnVheg-_W07sq789GvER80S4IieJ8VRjoh7y-txeT1nFpw5Wi4YX9c9PaogxfOS

关于神经网络(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


matlab怎么画线?
1、matlab中画线使用plot(a,b,c,d,e)函数,其中参数a是x坐标的范围,可以的数字也可以是一个函数表达式。参数b表示y坐标的范围,可以是数字也可以是函数表达式。参数c表示线的颜色,参数d表示线的类型,参数e表示线的粗细。参数a和b是必须有的,c,d,e参数可以不写,不写就使用默认值。画线x=...

如何在matlab中绘制等高线图
在MATLAB中绘制等高线图,主要使用`contour`函数。这个函数可以根据指定的X、Y坐标和对应的函数值Z,绘制出等高线图。首先,我们需要明确等高线图(Contour Plot)是什么。等高线图是一种在二维平面上展示三维数据的方式。在等高线图中,相同函数值的点被连接成线,这些线就是所谓的“等高线”。...

matlab画线的命令是什么?
水平线:plot([xmin,xmax],[a,a]);垂线: plot([b,b],[ymin,ymax]);xmin,xmax,ymin,ymax 分别是水平线和垂线的起点和终点。matlab中画线使用plot(a,b,c,d,e)函数,其中参数a是x坐标的范围,可以的数字也可以是一个函数表达式。参数b表示y坐标的范围,可以是数字也可以是函数表达式,参...

matlab有哪些线型
MATLAB中线型有多种,常见的有实线(solid line)、虚线(dashed line)、点线(dotted line)、点划线(dash-dotted line)等。MATLAB是一款功能强大的数学计算软件,其绘图功能中提供了多种线型供用户选择,以区分不同的数据曲线或实现特定的视觉效果。1. 实线(solid line):这是最常见的线型,用于...

Matlab做二维等值线图
简单的命令就是: contour(xx,yy,zz); 使用的matlab自动默认的插值,并给出几条等值线 当然可以指定等值线的数量。 contour(xx,yy,zz,20); 也可以使用contourf命令进行等值线内部填充: contourf(xx,yy,zz,20); 当然也可以删除填充后的等值线: contourf(xx,yy,zz,20,'lines','no');

matlab等号下有红线
表示语法错误或警告。MATLAB等号下有红线通常表示语法错误或警告,这种情况通常在输入MATLAB命令或脚本时发生。MATLAB是一种强大的数学计算软件,可用于各种科学和工程计算,包括但不限于信号处理、图像处理、控制系统设计、机器学习、计算金融等。

matlab如何画指定等值线
matlab如何画指定等值线用contour函数的'LevelList'属性来控制。绘制幅度为5的等值线,如下例子。x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];z=[4 8 6 8 6...

Matlab如何画等值线图
可以查看contour函数 >> x = -2:0.2:2;>>y = -2:0.2:3;>>[X,Y] = meshgrid(x,y);>>Z = X.*exp(-X.^2-Y.^2);>>figure >>contour(X,Y,Z,'ShowText','on')

如何用matlab画函数的等值线图?
MATLAB 提供了另一种基本的三维图形,即三维等值线图。这种图形通过函数contour3来绘制。例1:[x,y,z]=peaks(30);contour3(X,Y,Z,16); %用 16 种颜色 grid,xlabel(‘ x-axis ‘ ),ylabel(‘ y-axis ‘ ),zlabel(‘ z-axis ‘ );title( ‘CONTOUR3 of PEAKS ‘)例2:[...

如何matlab在一个坐标系中同时绘制多个元函数,再线等!!!
x1=0:0.1:5;x2=linspace(2,4,length(x1));[x1,x2]=meshgrid(x1,x2);y1=5*x1+3*x2;y2=-x1-x2;surf(x1,x2,y1),hold on surf(x1,x2,y2)hold off 按上面语句试试

乐业县17038078989: 用MATLAB建立bp神经网络模型,求高手,在线等
宇文涛前列: Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全.下面仅以一个例子列举部分函数的部分用法.更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档. 例子:利用bp神经网络模型建立z=...

乐业县17038078989: matlab程序 BP神经网络预测 程序如下: -
宇文涛前列: P=[...];输入T=[...];输出% 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],,'traingdm')% 当前输入层权值和阈值 inputWeights=net_1.IW inputbias=net_1.b% 当前网络层权值和阈值 layerWeights=net_1.LW layerbias=net_1.b 应该没问题吧.

乐业县17038078989: 急!求助bp神经网络电力负荷预测代码 -
宇文涛前列: P=[a1 a2;a2 a3]; T=[a3;a4]; C=[a4]; net=newff(minmax(P),[2,1],{'tansig','logsig'},'traingd');%%建网络 net.trainParam.epochs=5000;%%学习次数 net.trainParam.goal=0.0001;%%精度 net=train(net,P,T);%%训练 y=sim(net,C);%%仿真 根据你的描述,关键的代码就上面的这些.建议把BP网的算法原理手动计算熟悉一下.这里面隐含层神经元的个数(代码里的2)可以改.另外就是数据输入组织这块你需要注意一下,还有就是你的样本量这块也需要考虑一下

乐业县17038078989: 求BP神经网络的MATLAB算法
宇文涛前列: 以常用的三层BP为例: net=newff(P,T,{m},{'tansig'},'trainlm');//用newff建立新的网络net,P为样本输入,T为目标输出,m为隐层的神经元数目,tansig为隐层到输出层的传输函数,如果是多隐层则要给出每层的输出函数,trainlm为训练函数 net....

乐业县17038078989: bp神经网络股票价格预测的MATLAB编程 -
宇文涛前列: P=[];'输入,开盘价,最高价,最低价,收盘价成交量依次5天的数据' T=[];'输出,即第二日的收盘' net=newff(minmax(P),[7,1],{'tansig','logsig'},'traingdx'); net.trainParam.epochs=1000; '最大训练次数,根据需要可自行调节' net....

乐业县17038078989: 用Matlab编程BP神经网络进行预测 -
宇文涛前列: 原理就是:建立网络-数据归一化-训练-预测-数据反归一化.附件是电力负荷预测的例子,可以参考.BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程.它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小.BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer).

乐业县17038078989: 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]

乐业县17038078989: 用matlab中bp神经网络实现由输入值预测输出值的程序 -
宇文涛前列: 给你个例子如下,net=newff(inputn,outputn,[8,4],{'tansig','purelin'},'trainscg');%初始化网络结构%网络参数配置(迭代次数、学习率、目标) net.trainParam.epochs=3000; net.trainParam.lr=0.08; net.trainParam.goal=0.05; net.divideFcn = ''; [net,tr]...

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

乐业县17038078989: 用Matlab算BP神经网络的具体算法?
宇文涛前列: BP神经网络的传递函数一般采用sigmiod函数,学习算法一般采用最小梯度下降法;下面是具体的程序例子: 例1 采用动量梯度下降算法训练 BP 网络. 训练样本定义如下: 输入矢量为 p =[-1 -2 3 1 -1 1 5 -3] 目标矢量为 t = [-1 -1 1 1] 解:本例的...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网