% 清空环境变量
clc;
clear;
close all;
%% 样本数据生成
jizhanid=load('anchorCfg.mat');
data=load('area_sample_test.mat');
location=zeros(499,83);
location1={'A0000','A83F2','A8418','A8420','A841C'};
[al,bl]=size(location1);
for ii=1:499
[shoudaogeshu,useless]=size(data.blink_frame(ii).anchor_array);
for ii2=1:shoudaogeshu
for kk=1:82
if strcmp(jizhanid.anchorCfg{kk,1},data.blink_frame(ii).anchor_array{ii2, 1}.id)
location(ii,kk)=data.blink_frame(ii).anchor_array{ii2, 1}.csi(2);
end
end
end
for ii3=1:bl
if strcmp(location1(ii3),data.detected_area{ii, 1})
location(ii,83)=ii3;
end
end
end
rowrank = randperm(size(location, 1)); % 随机打乱行
locationend = location(rowrank, :);%%按照rowrank打乱矩阵的行数
[a22,b22]=size(locationend);
for i=1:a22 %二值化
for j=1:b22-1
if locationend(i,j)~=0
locationend(i,j)=1;
end
end
end
%% BP算法
%输入数据
data=locationend;
%训练预测数据
data_train=data(1:220,1:83);
data_test=data(221:499,1:83);
input_train=data_train(:,1:82)';
output_train=data_train(:,83)';
input_test=data_test(:,1:82)';
output_test=data_test(:,83)';
%数据归一化
[inputn,mininput,maxinput,outputn,minoutput,maxoutput]=premnmx(input_train,output_train); %对p和t进行字标准化预处理
net=newff(minmax(inputn),[10,1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs=1000;
net.trainParam.lr=0.1;
net.trainParam.goal=0.001;
net.trainParam.show=200;
%网络训练
net=train(net,inputn,outputn);
%数据归一化
inputn_test = tramnmx(input_test,mininput,maxinput);
an=sim(net,inputn_test);
test_simu=postmnmx(an,minoutput,maxoutput);
Yn=test_simu;
Yn=round(Yn);
figure %绘图
plot(Yn,'r*-') %绘制预测值曲线
hold on %继续绘图
plot(output_test,'bo-') %实际值曲线
legend('BP预测值','实际值') %图例
wucha1=ones(1,79); %BP时预测误差
for ii1=1:79
wucha1(ii1)=(Yn(ii1)-output_test(ii1));
end
figure
plot(wucha1,'b^-')
% %% GABP算法
% %% 网络结构建立
% %读取数据
% data=locationend;
%
% %节点个数
% inputnum=10;
% hiddennum=65;
% outputnum=1;
% data_train=data(1:420,1:83);
% data_test=data(421:499,1:83);
%
% input_train=data_train(:,1:82)';
% output_train=data_train(:,83)';
%
% input_test=data_test(:,1:82)';
% output_test=data_test(:,83)';
%
% [inputn,inputps]=mapminmax(input_train);
% [outputn,outputps]=mapminmax(output_train);
% net=newff(minmax(inputn),[10,1],{'tansig','purelin'},'trainlm');
%
%
% %% 遗传算法参数初始化
% maxgen=10; %进化代数,即迭代次数
% sizepop=6; %种群规模
% pcross=[0.3]; %交叉概率选择,0和1之间
% pmutation=[0.1]; %变异概率选择,0和1之间
%
% %节点总数
% numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum;
%
% lenchrom=ones(1,numsum);
% bound=[-3*ones(numsum,1) 3*ones(numsum,1)]; %数据范围
%
% %------------------------------------------------------种群初始化--------------------------------------------------------
% individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
% avgfitness=[]; %每一代种群的平均适应度
% bestfitness=[]; %每一代种群的最佳适应度
% bestchrom=[]; %适应度最好的染色体
% %初始化种群
% for i=1:sizepop
% %随机产生一个种群
% individuals.chrom(i,:)=Code(lenchrom,bound); %编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)
% x=individuals.chrom(i,:);
% %计算适应度
% individuals.fitness(i)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn); %染色体的适应度
% end
%
% %找最好的染色体
% [bestfitness, bestindex]=min(individuals.fitness);
% bestchrom=individuals.chrom(bestindex,:); %最好的染色体
% avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度
% % 记录每一代进化中最好的适应度和平均适应度
% trace=[avgfitness bestfitness];
%
% %% 迭代求解最佳初始阀值和权值
% % 进化开始
% for i=1:maxgen
%
% % 选择
% individuals=Select(individuals,sizepop);
% avgfitness=sum(individuals.fitness)/sizepop;
% %交叉
% individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);
% % 变异
% individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,i,maxgen,bound);
%
% % 计算适应度
% for j=1:sizepop
% x=individuals.chrom(j,:); %解码
% individuals.fitness(j)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn);
% end
%
% %找到最小和最大适应度的染色体及它们在种群中的位置
% [newbestfitness,newbestindex]=min(individuals.fitness);
% [worestfitness,worestindex]=max(individuals.fitness);
% % 代替上一次进化中最好的染色体
% if bestfitness>newbestfitness
% bestfitness=newbestfitness;
% bestchrom=individuals.chrom(newbestindex,:);
% end
% individuals.chrom(worestindex,:)=bestchrom;
% individuals.fitness(worestindex)=bestfitness;
%
% avgfitness=sum(individuals.fitness)/sizepop;
%
% trace=[trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度
%
% end
% %% 遗传算法结果分析
% figure
% [r, c]=size(trace);
% plot([1:r]',trace(:,2),'b--');
% title(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
% xlabel('进化代数');ylabel('适应度');
% legend('平均适应度','最佳适应度');
% x=bestchrom;
%
% %% 把最优初始阀值权值赋予网络预测
% % %用遗传算法优化的BP网络进行值预测
% w1=x(1:inputnum*hiddennum);
% B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
% w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
% B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
%
% net.iw{1,1}=reshape(w1,hiddennum,inputnum);
% net.lw{2,1}=reshape(w2,outputnum,hiddennum);
% net.b{1}=reshape(B1,hiddennum,1);
% net.b{2}=B2;
%
% %% BP网络训练
% %网络进化参数
% net.trainParam.epochs=3000;
% net.trainParam.lr=0.1;
% net.trainParam.goal=0.001;
%
% %网络训练
% [net,per2]=train(net,inputn,outputn);
%
% %% BP网络预测
% %数据归一化
% inputn_test2=mapminmax('apply',input_test,inputps);
% an2=sim(net,inputn_test2);
% test_simu2=mapminmax('reverse',an2,outputps);
%
%
% Yn2=test_simu2;
% Yn2=round(Yn2);
% figure %绘图
% plot(Yn2,'r*-') %绘制预测值曲线
% hold on %继续绘图
% plot(output_test,'bo-') %实际值曲线
% legend('GABP预测值','实际值') %图例
% wucha2=ones(1,79); %GABP时预测误差
% for ii1=1:79
% wucha2(ii1)=((Yn2(ii1)-output_test(ii1))/output_test(ii1));
% end
% figure
% plot(wucha2,'r*--')
% %% 画对比图
% figure %绘图
% plot(Yn,'r*-') %绘制预测值曲线
% hold on %继续绘图
% plot(Yn2,'g^--') %绘制预测值曲线
% hold on
% plot(output_test,'bo-') %实际值曲线
% legend('BP预测值','GABP预测值','实际值') %图例
% figure
% plot(wucha1,'b^-')
% hold on
% plot(wucha2,'r*--')
% legend('BP预测误差','GABP预测误差') %图例
% % %% 数据存储
% % fid=fopen('shuchu.txt','w');
% % fprintf(fid,'%g\t',Yn);
% % fprintf(fid,'%g\t',Yn2);
% % fprintf(fid,'%g\t',wucha1);
% % fprintf(fid,'%g\t',wucha2);
% % fclose(fid);
没有合适的资源?快使用搜索试试~ 我知道了~
【BP数据预测】遗传算法优化BP神经网络GA-BP数据预测【含Matlab源码 1376期】.zip
共16个文件
m:11个
mat:2个
jpg:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 44 浏览量
2024-06-23
09:27:55
上传
评论
收藏 380KB ZIP 举报
温馨提示
Matlab领域上传的全部代码均可运行,亲测可用,尽我所能,为你服务; 1、代码压缩包内容 主函数:ga_2d_box_packing_test_task.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开除ga_2d_box_packing_test_task.m的其他m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 **5 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
资源推荐
资源详情
资源评论
收起资源包目录
【BP数据预测】遗传算法优化BP神经网络GA-BP数据预测【含Matlab源码 1376期】.zip (16个子文件)
【BP数据预测】基于matlab遗传算法优化BP神经网络GA-BP数据预测【含Matlab源码 1376期】
运行结果1.jpg 69KB
area_sample_test.mat 410KB
Select.m 827B
Untitled.m 686B
main.m 7KB
Decode.m 1KB
运行结果2.jpg 28KB
Code.m 413B
Genetic.m 4KB
BP.m 975B
Cross.m 2KB
test.m 289B
fun.m 1KB
anchorCfg.mat 2KB
Mutation.m 2KB
data2.xlsx 11KB
共 16 条
- 1
资源评论
Matlab领域
- 粉丝: 3w+
- 资源: 3183
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 柯尼卡美能达Bizhub C266打印机驱动下载
- java游戏之我当皇帝那些年.zip开发资料
- 基于Matlab的汉明码(Hamming Code)纠错传输以及交织编码(Interleaved coding)仿真.zip
- 中国省级新质生产力发展指数数据(任宇新版本)2010-2023年.txt
- 基于Matlab的2Q-FSK移频键控通信系统仿真.zip
- 使用C++实现的常见算法
- travel-web-springboot【程序员VIP专用】.zip
- 基于Matlab, ConvergeCase中部分2D结果文件输出至EXCEL中 能力有限,代码和功能极其简陋.zip
- java桌面小程序,主要为游戏.zip学习资源
- Java桌面-坦克大战小游戏.zip程序资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功