神经网络做预估计是怎么回事?就是要求用生产过程中能够测得的变量估计无法测得的变量,求解释一下

2024-05-18 14:32

1. 神经网络做预估计是怎么回事?就是要求用生产过程中能够测得的变量估计无法测得的变量,求解释一下

假设直接测量得到的变量有m个,组成向量X=[x1,x2…xm]。不能直接测量的量有n个,组成向量Y=[y1,y2…yn]。可以认为,一组向量X就对应一组向量Y。
获得许多组这样的数据组成样本,将输入和输出样本提交给神经网络,神经网络通过一定的训练算法,如BP算法对这组数据进行学习。当网络训练好后,该网络就能反映这些数据内部的非线性关系。当你用一组新测量到的数据Xtest作为输入,神经网络的输出Ytest就是预估值。
下图是神经网络的模型示意图,输入为x,输出为Y。

神经网络做预估计是怎么回事?就是要求用生产过程中能够测得的变量估计无法测得的变量,求解释一下

2. 求助:用神经网络做一个数据预测

下列代码为BP神经网络预测37-56周的销售量的代码:
% x为原始序列
load 销售量.mat
data=C
x=data';
t=1:length(x);
lag=2; 
fn=length(t);
[f_out,iinput]=BP(x,lag,fn);
%预测年份或某一时间段
t1=fn:fn+20;
n=length(t1);
t1=length(x)+1:length(x)+n;
%预测步数为fn
fn=length(t1);     
[f_out,iinput]=BP(x,lag,fn);
P=vpa(f_out,5);
[t1' P']
% 画出预测图
figure(6),plot(t,x,'b*-'),hold on
plot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid on
xlabel('周数'),ylabel('销售量');
str=['BP神经网络预测',num2str(length(x)+1),'-',num2str(length(x)+20),'周的销售量'];
title(str)
str1=['1-',num2str(length(x)),'周的销售量'];
str2=[num2str(length(x)+1),'-',num2str(length(x)+20),'周的预测销售量'];
legend(str1,str2)
运行结果