Ⅰ bp神经网络如何用于预测
x(n+1)=F(x(n)+x(n-1)+.......x(n-1));由已知数据预测下一个数据这是单步预测。
Ⅱ 如何人工神经网络来预测下一个数值
newff函数建立BP神经网络,历史数据作为样本,例如前n个数据作为输入,输入节点为n。当前数据作为p,输出节点为1。隐层节点根据试凑法得到。通过matlab的train函数,得到训练好的BP神经网络。再将当前预测点的前n个数据作为输入,输出即为当前的预测值。
Ⅲ BP神经网络预测代码
你这是在做时间序列呢。
你可以去《神经网络之家》nnetinfo----》学习教程二--->神经网络在时间序列上的应用
上面有讲解。我把代码摘抄给你
% time series:神经网络在时间序列上的应用
% 本代码出自《神经网络之家》
timeList = 0 :0.01 : 2*pi; %生成时间点
X = sin(timeList); %生成时间序列信号
%利用x(t-5),x(t-4),x(t-3),x(t-2),x(t-1)作为输入预测x(t),将x(t)作为输出数据
inputData = [X(1:end-5);X(2:end-4);X(3:end-3);X(4:end-2);X(5:end-1)];
outputData = X(6:end);
%使用用输入输出数据(inputData、outputData)建立网络,
%隐节点个数设为3.其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%设置一些常用参数
net.trainparam.goal = 0.0001; %训练目标:均方误差低于0.0001
net.trainparam.show = 400; %每训练400次展示一次结果
net.trainparam.epochs = 1500; %最大训练次数:15000.
[net,tr] = train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
simout = sim(net,inputData); %调用matlab神经网络工具箱自带的sim函数得到网络的预测值
figure; %新建画图窗口窗口
t=1:length(simout);
plot(t,outputData,t,simout,'r')%画图,对比原来的输出和网络预测的输出
%------------------附加:抽取数学表达式----------------------------top
%希望脱离matlab的sim函数来使用训练好网络的话,可以抽取出数学的表达式,|
%这样在任何软件中,只需要按表达式计算即可。 |
%============抽取数学表达式==================
%抽取出网络的权值和阈值
w12 = net.iw{1,1}; %第1层(输入层)到第2层(隐层)的权值
b2 = net.b{1}; %第2层(隐层)的阈值
w23 = net.lw{2,1}; %第2层(隐层)到第3层(输出层)的权值
b3 = net.b{2}; %第3层(输出层)的阈值
%由于有归一化,必须先将归一化信息抓取出来
iMax = max(inputData,[],2);
iMin = min(inputData,[],2);
oMax = max(outputData,[],2);
oMin = min(outputData,[],2);
%方法1:归一化--->计算输出--->反归一化
normInputData=2*(inputData -repmat(iMin,1,size(inputData,2)))./repmat(iMax-iMin,1,size(inputData,2)) -1;
tmp = w23*tansig( w12 *normInputData + repmat(b2,1,size(normInputData,2))) + repmat(b3,1,size(normInputData,2));
myY = (tmp+1).*repmat(oMax-oMin,1,size(outputData,2))./2 + repmat(oMin,1,size(outputData,2));
%方法2:用真正的权值和阈值进行计算
%公式请参考《提取对应原始数据的权重和阈值》
W12 = w12 * 2 ./repmat(iMax' -iMin',size(w12,1),1);
B2 = -w12* (2*iMin ./(iMax - iMin) + 1) + b2;
W23 = w23 .*repmat((oMax -oMin),1,size(w23,2))/2;
B3 = (oMax -oMin) .*b3 /2 + (oMax -oMin)/2 + oMin;
%最终的数学表达式:
myY2 = W23 *tansig( W12 *inputData + repmat(B2,1,size(inputData,2))) + repmat(B3,1,size(inputData,2));
Ⅳ 如何用BP神经网络实现预测
首先要知道你建立的这个模型的内部逻辑关系。。
1,确定隐层数,画出简要模型图。
2,确定采用什么样的神经网络来建立模型
3.通过测试数据来训练模型。。
4.根据测试训练得到的数据和实际数据进行比对,或者算出误差。从而修改隐层中的权值和阀值。
反复重复3-4.。最后得到一个最优的模型。
大致是这样。。。楼主说的太概略。。。无法回答清楚请抱歉
Ⅳ 怎么用已经训练好的BP神经网络进行预测下一个值
如果你的输入归一化好了,那么仿真的时候也要归一化,用tramnmx函数,在结果输出的时候进行输出归一化,用postmnmx函数
Ⅵ R语言中BP神经网络怎么进行预测新数据
help sim 准备数据集 学习和训练 help train 训练完成后,保存、使用网络 help sim
Ⅶ 大神,请问如何用BP实现通过已知数据训练好的网络对未来完全没有数据的一段时间进行预测,或者做出图。
你输入是什么 输出是什么? 如果只是时间序列作为输入参数,建议不要用神经网络。 你可以多提供一些信息以供具体分析。 BP做训练网络基本都能达到误差允许范围,但是如果你输入输出本身内部关联性就不强,那用这个训练好的网络来预测误差会很大。
Ⅷ 您好,我目前有6年数据,想用BP神经网络预测未来几年的数据,想问下您公式,谢谢!
用matlab。
字数字数。
Ⅸ BP神经网络如何得出新的预测值
help sim
准备数据集
学习和训练 help train
训练完成后,保存、使用网络 help sim
Ⅹ DPS软件的BP神经网络预测.怎样预测未来几年的数
BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。