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 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
  • 当前神经网络有多少层构成?输入层、各隐层、输出层的神经元数量分别是多少?隐层和输出层的激活函数为哪种函数?训练算法是梯度下降吗?如果不是?怎么修改训练算法。请将网络结构图放入实验报告;
    隐含层有2个,输出层有1个,隐层激活函数是tansig,输出层的激活时tansig,训练函数表示梯度下降函数,将反向传播的训练函数trainlm改为traingd
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值