goodtest2.m

来自「matlab使用BP网络的例子,使用Levenberg Marquardt算法提」· M 代码 · 共 30 行

M
30
字号
%对效果不错的网络进行评估识别率,进行精确估计,即向后识别1步

clear;
load GoodBlueNetwork.txt -mat;
load data.txt -mat;
samplenum=size(TrainingObject,2);       %得到样本数
nown=n+1;
correctnum=0;
correct=0;
show=[];
for n=nown:samplenum-1  
    prediction=sim(net,TrainingSample(:,n));    %预测值
    real=TrainingObject(:,n);                  %目标值
    if(abs(prediction-real)<0.5)                    %计算正确率
        correctnum=correctnum+1;
        correct=1;
    else
        correct=0;
	end;
    show=[show;prediction,real,abs(prediction-real),correct];              %评估情况
    [net,tr]=train(net,TrainingSample(:,1:n),TrainingObject(:,1:n));    %评估完了要重新训练
    MSE=tr.perf(size(tr.perf,2));                       %计算性能  
    save teststate.mat;                                 %每做完一次训练后保存一次以便将来能继续
    save n.txt n MSE correctnum show -ascii;                 %可以让我们看出当前训练到哪一步了,MSE是多少,预测能力是多少
end;
num=samplenum-nown;
ratio=correctnum/num;                               %正确率

%sum(show(:,3))/size(show,1)    MATLAB求均值的方法
%sum(show(:,3)<0.5)             MATLAB计数的方法

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?