1、% 清空环境变量clcclear% 训练数据预测数据data=importdata(test.txt);%从 1 到 768 间随机排序k=rand(1,768);m,n=sort(k);%输入输出数据input=data(:,1:8);output =data(:,9); %随机提取 500 个样本为训练样本, 268 个样本为预测样本input_train=input(n(1:500),:);output_train=output(n(1:500),:);input_test=input(n(501:768),:);output_test=output(n(501:768),:); %输入
2、数据归一化inputn,inputps=mapminmax(input_train); % BP 网络训练% %初始化网络结构net=newff(inputn,output_train,10); net.trainParam.epochs=1000;net.trainParam.lr=0.1;net.trainParam.goal=0.0000004;% 网络训练net=train(net,inputn,output_train); % BP 网络预测%预测数据归一化inputn_test=mapminmax(apply,input_test,inputps); %网络预测输出BPoutput
3、=sim(net,inputn_test); % 结果分析%根据网络输出找出数据属于哪类BPoutput(find(BPoutput=0.5)=1; % 结果分析%画出预测种类和实际种类的分类图figure(1)plot(BPoutput,og)hold onplot(output_test,r*);legend(预测类别, 输出类别)title(BP 网络预测分类与实际类别比对,fontsize,12)ylabel(类别标签,fontsize,12)xlabel(样本数目,fontsize,12)ylim(-0.5 1.5) %预测正确率rightnumber=0;for i=1:size(output_test,2)if BPoutput(i)=output_test(i)rightnumber=rightnumber+1;endendrightratio=rightnumber/size(output_test,2)*100;sprintf(测试准确率=%0.2f,rightratio)