赞
踩
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。