1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y52clZpw
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
利用遗传算法来优化 BP 神经网络,利用它来学习神经网络 的权值,并在自适应遗传算法的基础上改进遗传算 子,根据适应度变化调节交叉率和变异率,并利用遗 传算法的全局搜索能力对BP 神经网络的初始权重进 行自适应调整,最终得到一个优化的 BP 神经网络.
4.部分源码
clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')
load data.mat
Num_In = size(Train_data,1);
Num_Hidden = 6;
Num_Out = 1;
%构建BP网络
net = newff(Train_data,Train_aim,Num_Hidden);
net = func_newGA(net,Num_In,Num_Hidden,Num_Out,Train_data,Train_aim);
net = train(net,Train_data,Train_aim);
outputs = round(sim(net,awgn(Test_data,0,'measured')));%测试的时候,加入随机干扰
%计算整体识别率
disp('整体识别率:');
C0 = 100*length(find(outputs==Test_aim))/length(Test_aim)
disp('第1种故障识别率:');
C1 = 100*length(find(outputs(1:50)==1))/length(Test_aim)*3
disp('第2种故障识别率:');
C2 = 100*length(find(outputs(51:100)==2))/length(Test_aim)*3
disp('第3种故障识别率:');
C3 = 100*length(find(outputs(101:150)==3))/length(Test_aim)*3
%测试不同噪声大小下的识别率
SNR = -2:1:16;
for i = 1:length(SNR)
i
for j = 1:20
rng(j);
Test_data2 = awgn(Test_data,SNR(i),'measured');
outputs = round(sim(net,Test_data2));
C20(i,j) = 100*length(find(outputs==Test_aim))/length(Test_aim);
C21(i,j) = 100*length(find(outputs(1:50)==1))/length(Test_aim)*3;
C22(i,j) = 100*length(find(outputs(51:100)==2))/length(Test_aim)*3;
C23(i,j) = 100*length(find(outputs(101:150)==3))/length(Test_aim)*3;
end
end
05_038_m