% 清空环境变量
clc
clear
%% 训练数据预测数据提取及归一化
%下载四类语音信号
try
load 'data1' c1
load 'data2' c2
load 'data3' c3
load 'data4' c4
catch ErrorInfo
disp('请您务必在当前文件夹下运行!!!,或者将数据重新加载');
end
addpath(genpath(pwd))
%四个特征信号矩阵合成一个矩阵
data(1:500,:)=c1(1:500,:);
data(501:1000,:)=c2(1:500,:);
data(1001:1500,:)=c3(1:500,:);
data(1501:2000,:)=c4(1:500,:);
%输入输出数据
input=data(:,2:end);
output1 =data(:,1);
for i=1:size(output1,1)
switch output1(i)
case 1
output(i,1)=1;
case 2
output(i,2)=1;
case 3
output(i,3)=1;
case 4
output(i,4)=1;
case 5
output(i,5)=1;
case 6
output(i,6)=1;
case 7
output(i,7)=1;
case 8
output(i,8)=1;
case 9
output(i,9)=1;
case 10
output(i,10)=1;
end
end
jg = 500; %每组500个样本
tn = 420; %选前tn个样本进行训练,剩下的100个用于测试
input_train = []; output_train = [];
input_test = []; output_test = [];
for i = 1:4 %一共有4类
input_train=[input_train;input(1+jg*(i-1):jg*(i-1)+tn,:)];
output_train=[output_train;output(1+jg*(i-1):jg*(i-1)+tn,:)];
input_test=[input_test;input(jg*(i-1)+tn+1:i*jg,:)];
output_test=[output_test;output(jg*(i-1)+tn+1:i*jg,:)];
end
%输入数据归一化
input_train = input_train';
output_train = output_train';
input_test = input_test';
output_test = output_test';
%归一化
[inputn,inputps]=mapminmax(input_train);
[inputn_test,inputtestps]=mapminmax('apply',input_test,inputps);
%% 网络结构初始化
% 获取输入层节点、输出层节点个数
inputnum=size(inputn,1);
outputnum=size(output,2);
hiddennum_best = 10; %需要手动赋值
disp('/////////////////////////////////')
disp('神经网络结构...')
disp(['输入层的节点数为:',num2str(inputnum)])
disp(['输出层的节点数为:',num2str(outputnum)])
disp(' ')
%% 优化算法寻最优权值阈值
%初始化参数
pop=8; %初始种群规模
maxgen=30; %最大进化代数
dim=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum; %自变量个数
lb = -2.*ones(1,dim); %神经网络权值阈值的下限
ub = 2.*ones(1,dim); %神经网络权值阈值的上限
fobj = @(x)fitness(x,inputnum,hiddennum_best,outputnum,inputn,output_train,inputn_test,output_test);
disp('正在调用优化算法对BP进行优化,请稍等……')
[Best_score,Best_pos,curve]=BKA(pop, maxgen,lb,ub,dim,fobj);
setdemorandstream(2*pi);
%将最佳值Best_pos带入目标函数
[error,predict_label] = fitness(Best_pos,inputnum,hiddennum_best,outputnum,inputn,output_train,inputn_test,output_test);
outputt=zeros(1,size(output_test,2));
for i=1:size(output_test,2)
outputt(i)=find(output_test(:,i)==max(output_test(:,i)));
end
fprintf('test is over and plot begining……\n');
accuracy=sum(outputt==predict_label)/length(predict_label); %计算预测的确率
%输出准确率
disp('---------------------------测试准确率-------------------------')
disp(['优化BP神经网络诊断准确率:',num2str(accuracy*100),'%'])
% 标准作图
% 画方框图
figure('Position',[10,50,800,600])
set(gca,'looseInset',[0 0 0 0])
confMat = confusionmat(outputt,predict_label); %output_test是真实值标签
zjyanseplotConfMat(confMat.');
xlabel('Predicted label')
ylabel('Real label')
title(['优化BP的测试集正确率 = ',num2str(accuracy*100),' %'])
% 作图
figure('Position',[50,50,800,600])
set(gca,'looseInset',[0 0 0 0])
plot(1:1:length(predict_label),outputt,'*-','Color',[0 0.4470 0.7410],'LineWidth',1)
hold on
plot(1:1:length(predict_label),predict_label,'p-','Color',[0.9290 0.6940 0.1250],'LineWidth',0.1,'MarkerSize',3)
legend('预测类别','真实类别','NorthWest')
title(['优化BP的测试集正确率 = ',num2str(accuracy*100),' %'])
xlabel('预测样本编号')
ylabel('分类结果')
box on
set(gca,'fontsize',12)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.Matlab实现BKA-BP黑翅鸢算法优化BP神经网络分类预测(Matlab完整源码和数据)。 2.输出对比图、混淆矩阵图、预测准确率,运行环境Matlab2023及以上。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 5.作者介绍:CSDN搜索博主名称机器学习之心,CSDN博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。
资源推荐
资源详情
资源评论
收起资源包目录
黑翅鸢算法优化BP神经网络分类.zip (11个子文件)
zjyanseplotConfMat.m 2KB
BKA.m 3KB
initialization.m 1KB
data3.mat 91KB
data2.mat 91KB
main.m 4KB
1.png 46KB
fitness.m 2KB
data1.mat 91KB
data4.mat 91KB
2.png 48KB
共 11 条
- 1
资源评论
机器学习之心
- 粉丝: 2w+
- 资源: 1065
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 浮标、船、人检测10-YOLO(v7至v11)、COCO、VOC数据集合集.rar
- 全称为SQL Server Management Studio(简称SSMS),是由微软开发的一款强大的数据库管理和开发工具,专为SQL Server设计
- 题目四 基础应用实践二 旅行信息分享应用
- 基于 Gradio 的 YOLOv5 通用目标检测系统(源码+运行文档)
- 汽车检测7-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 无需安装MobaXterm简约版本,远程工具
- Delphi 12 控件之Winsoft WinRT v1.5 for Delphi & CB 7-12 Athens Full Source.7z
- 基于MyBatis Generator 逆向工程植物病虫害识别&防治系统源码
- 某某某性别:籍贯:生日:电话:邮箱:地址:婚姻状况:工作
- Delphi 12 控件之Winsoft WinRT for FireMonkey v1.5.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功