当前位置:   article > 正文

BP神经网络用于预测_p=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1

p=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2; 9.6 10.3 9 10.3 10.1
P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;
   9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;
   3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;
   2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;
   140 120 140 150 80 130 130 100 130 140 115 80 90 130;
   2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;
   11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;
   50 70 50 80 50 60 65 40 65 50 50 50 70 70];
% P为评分矩阵的每一列为一组训练数据构成的矩阵(每组数据维数为14,因第15行有缺失需预测的数据故不能用作训练数据)

T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];
% 目标向量(电影1的已知用户评分,因包含缺失数据的第一列,同样维数为14。)

%需根据给出的P和T预测出T的第15个缺失的数据
%premnmx归一化函数,目的是把数据处理成[-1,1]之间
[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);


%newff该函数用于创建一个前馈BP神经网络
%句法:net=netff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
%解释:
%P:输入数据矩阵
%T:目标数据矩阵
%S:隐含层节点数
%TF:节点传递函数(阈值函数hardlim,hardlims,线性函数purelin,双曲正切S型函数tansig,对数S型传递函数)
%BTF:训练函数(梯度下降训练函数traingd,动量反传梯度下降函数traingdm,动态自适应学习率下降函数traingda,动量反传和动态自适应梯度下降训练函数traindx,L_M训练函数trainlm)
%BLF:网络学习函数,(BP学习规则learngd,带动量的BP学习规则learngdm)
%PF:性能分析函数(均值绝对误差性能分析函数mae,均方差性能分析函数mse)
%IPF:输入处理函数
%OPF:输出处理函数
%DDF:验证数据划分函数
net=newff(p1,t1,[2],{'tansig','tansig','purelin'},'trainlm');
%次数定义
net.trainParam.epochs = 5000;
%训练目标,默认为0
net.trainParam.goal=0.0000001;

%建立BP网络时默认 divideFcn函数将数据70%作为训练,15%作为校验,15%作为测试,我的数据只有55组,45组用于训练网路,剩余10组作为验证。
%下面语句目的是将所有样本数据用于训练数据
%net.divideFcn = '';
%训练
[net,tr]=train(net,p1,t1);
 

a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];
%归一
a=premnmx(a);

b=sim(net,a);

%反归一操作
%网络输出结果需要进行反归一化还原成原始的数据,常用的函数是:postmnmx。
%postmnmx语句的语法格式是:[PN] = postmnmx(P,minp,maxp)
%其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值
c=postmnmx(b,mint,maxt);
c
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 当前神经网络有多少层构成?输入层、各隐层、输出层的神经元数量分别是多少?隐层和输出层的激活函数为哪种函数?训练算法是梯度下降吗?如果不是?怎么修改训练算法。请将网络结构图放入实验报告;
    隐含层有2个,输出层有1个,隐层激活函数是tansig,输出层的激活时tansig,训练函数表示梯度下降函数,将反向传播的训练函数trainlm改为traingd
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/314261
推荐阅读
相关标签
  

闽ICP备14008679号