matlab BP神经网络预测下一组数据问题如题,输入p为n行6列,下面代码我仅举例了4行,实际有很多行.现需要进行matlab使用BP神经网络编程,将以前的所有样本进行训练,预测下一组将出现的6个数据.
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/22 18:00:39
matlab BP神经网络预测下一组数据问题如题,输入p为n行6列,下面代码我仅举例了4行,实际有很多行.现需要进行matlab使用BP神经网络编程,将以前的所有样本进行训练,预测下一组将出现的6个数据.
matlab BP神经网络预测下一组数据问题
如题,输入p为n行6列,下面代码我仅举例了4行,实际有很多行.
现需要进行matlab使用BP神经网络编程,将以前的所有样本进行训练,预测下一组将出现的6个数据.
实际上就是已知前N组样本,预测下一组样本的数值.
代码如下:
%输入数据
clear;
clc;
p=[23 25 26 27 29 26;
22 24 26 27 25 18;
12 13 15 18 19 22;
16 17 15 18 19 12] %实际p有很多行数据,此处仅列举4行.
[m,n]=size(p);
pn=p(1:m-1,:); %此处将第一行到倒数第二行作为训练样本
pn=pn*0.01; %此处因为知道pn输入所有数介于0到99之间,因此直接乘以0.01进行数据归一.
tn=p(m,:); %最后一行作为验证结果
tn=tn*0.01; %此处因为知道pn输入所有数介于0到99之间,因此直接乘以0.01进行数据归一.
pn=pn';
tn=tn'; %对pn和tn进行转置
net=newff(minmax(pn),[18,6],{'tansig','logsig'},'trainbr'); %建立网络
net.trainParam.show = 50; %多少轮显示一回
net.trainParam.lr = 0.05;
net.trainParam.epochs = 800; %最大训练轮数
net.trainParam.goal = 1e-5; %目标函数误差
%开始训练
ttn=sim(net,ppn);
ttn=ttn'*100; %数据进行转置并还原真实值
运行上述代码后,发现结果如下:
ans =
2.2222e+014
为什么不能得到我想要的下一组数据呢?
实际上我只需要训练已知所有样本,预测得到下一组样本即可.
不知代码是否思路正确,或者有更好的思路或建议的话,
matlab BP神经网络预测下一组数据问题如题,输入p为n行6列,下面代码我仅举例了4行,实际有很多行.现需要进行matlab使用BP神经网络编程,将以前的所有样本进行训练,预测下一组将出现的6个数据.
-请问此处如何处理,能够达到让pn等于所有的已知样本来作为预测样本输入?
不知道问题出在哪里,为什么不能得到我想要的下一组数据呢?矛盾啊
http://wenku.baidu.com/link?url=5sPeHwbbotF80NS4oh94zeMshhP68JhbRIqTcBeeAfJ9ZnVheg-_W07sq789GvER80S4IieJ8VRjoh7y-txeT1nFpw5Wi4YX9c9PaogxfOS