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

2024-05-12 18:03

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

下列代码为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)
运行结果

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

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

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

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

3. 预测 一般有哪些方法 神经网络

时间序列预测只要能转化为训练样本,即可使用神经网络进行训练。目前常用的几类人工神经网络,如BP神经网络、Elman神经网络、RBF神经网络、GRNN神经网络、小波神经网络以及各类组合神经网络,都是可以应用在时间序列预测中的。
预测效果较好的一般有:1、GRNN神经网络、RBF神经网络。局部逼近网络由于只需调整局部权值,因此训练速度较快,拟合精度也较高。2、Elman神经网络。由于Elman神经网络的承接层的延时算子,使得网络可以记忆历史信息,这正好与时间序列预测的原理相同,极其适于应用于时间序列预测。

预测 一般有哪些方法 神经网络

4. 神经网络适合什么预测

这个问题,先可以理解为什么神经网络可以实现预测。

我们将我们平常看到的神经网络转90度来看。最下层(输入层)信息逐渐到上层(输出层)时候可以得到一个预测结果。其中起到关键作用的就是中间的隐藏层。那么可以理解为隐藏层有什么作用导致了整个神经网络可以进行预测。

我们耳熟能详的解释是,隐藏层具有提取特征的能力。那么如何理解这个提取特征的能力?我们以一个公司选举为例,我们要选择一个人当作我们的团队的头头。A1、A2、A3、A4、A5表示5个小职员,B1、B2、B3是中层干部,C_pred表示我们要选择的头头。那么这个选举流程是每个中层干部(B1-B3)都要去分别听5个小职员(A1-A5)的建议,那么做为上级,在听取下级的建议时候,肯定是有倾向的,肯定会更多考虑某一个值得信任的下级的建议,因此可以看出来,中层干部针对不同的小员工的信息具有不同的建议分辨能力,就可以理解为上一层对下一层信息有选择性质的提取,那么中层干部(B1-B3)将提取的信息整合,选出一个头头C_pred。但是经过选举出来的这个头头,必须通过董事会的建议,而董事会已经有了合适的人选C_true,然后董事长告诉大家,C_true是我当年的发小,于是乎中层干部(B1-B3)听到这个信息马上去讨论改选择谁当头头,接着,中层干部(B1-B3)马上去发动手底下的小弟(A1-A5)重新讨论选举头头人问题,于是乎信息又一次次过滤,一次次汇报,最终董事长觉得这个C_pred和自己信息预测的C_true差不多,就通过的他心里的那个坎。

将人类的活动化为数学问题,那么我们可以认为,中层干部(B1-B3)针对不同小职员(A1-A5)的建议吸收程度,视为特征提取,将董事长心里预期C_true和中层干部(B1-B3)的建议后选择人C_pred的落差视为loss,然后将董事长的指示一层层传达上报的行为称为反向传播(BP),最终C_pred复合董事长心里预期,通过他心里的坎可以视为,结果大于score(置信度).

5. 神经网络预测值为何全相同

最大的可能性是没有归一化。具体原因见下:
下面这个是经典的Sigmoid函数的曲线图:


如果不进行归一化,则过大的输入x将会导致Sigmoid函数进入平坦区,全部趋近于1,即最后隐层的输出全部趋同。输出层是个purelin,线性组合后的输出层输出当然也全是几乎相同的了。

使用matlab进行归一化通常使用mapminmax函数,它的用法:
[Y,PS] = mapminmax(X,YMIN,YMAX)——将数据X归一化到区间[YMIN,YMAX]内,YMIN和YMAX为调用mapminmax函数时设置的参数,如果不设置这两个参数,这默认归一化到区间[-1, 1]内。标准化处理后的数据为Y,PS为记录标准化映射的结构体。我们一般归一化到(0,1)区间内。希望采纳哦!http://zhidao.baidu.com/question/1882929579529248508

神经网络预测值为何全相同